我正在嘗試執行一個宏,其中VBA在列中查找特定單詞,並且當它找到單詞時,它將整個行從一個工作簿複製到另一個工作簿。它可以多次找到這個單詞,所以我試圖讓它循環,儘管它只在循環中循環一次,然後停止。僅用於循環一次循環並崩潰
這裏是for。
Application.Workbooks.Open ("C:\Documents and Settings\1848052\Mis documentos\Portafolios\Vistas\Portafolio.xlsm")
i = 9
For j = 8 To 1000
celda = Workbooks("Portafolio.xlsm").Sheets("FemCo").Range("B" & j).Value
If celda = area Then
Workbooks("Portafolio.xlsm").Sheets("FemCo").Range("B" & j).Select
fila = ActiveCell.Row
Windows("Portafolio.xlsm").Activate ' Copiar row
Range("A" & fila & ":" & "V" & fila).Select
Selection.Copy
Windows("Vista RPAs.xlsm").Activate 'Pegar row
Range("B" & i & ":W" & i).Select
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=False
Application.CutCopyMode = False
i = i + 1
End If
Next
正如我前面提到的,它只是循環一次,然後這個:
Workbooks("Portafolio.xlsm").Sheets("FemCo").Range("B" & j).Select
是崩潰的一部分,我得到「錯誤1004」。你如何看待我能解決這個錯誤?
在此先感謝。
請避免使用'select'聲明!最可能的問題是,您正嘗試在非活動工作簿上選擇範圍。嘗試添加'Windows(「Portafolio.xlsm」)。Activate'在行Workbooks(「Portafolio.xlsm」)。表(「FemCo」)。範圍(「B」&j)。選擇' –
非常感謝,它做到了!你會如何建議我可以在不使用select語句的情況下找到單元格的行號? – robti
試試這個:'fila = Workbooks(「Portafolio.xlsm」)。Sheets(「FemCo」)。Range(「B」&j).Row'或者簡單地'fila = j'因爲'Range(「B」 j)'在第№j行:) –