0
下面我有一些代碼:Excel的VBA - Range.Find錯誤1004
Sub Priority()
ActiveSheet.Name = "Raw Data"
Dim ws As Worksheet
Set ws = Sheets("Raw Data")
Dim ws2 As Worksheet
Set ws2 = ThisWorkbook.Sheets.Add(After:= _
ThisWorkbook.Sheets(ThisWorkbook.Sheets.Count))
ws2.Name = "Sev 4+"
Dim copyRange As Range
Dim firstAddress As String
Row = 2
Dim i As Integer
For i = 1 To 1500
Set copyRange = ws.Range(Cells(i, 2), Cells(i, 2)).Find("feas", , , xlPart) 'The error pulls up at this line
If Not copyRange Is Nothing Then
Copied = ws.Range(Cells(i, 1), Cells(i, 17)).Value
ws2.Activate
ws2.Range(Cells(Row, 1), Cells(Row, 17)).Value = Copied
Row = Row + 1
ws.Activate
End If
Next i
End Sub
它在理論上應該考慮細胞中的B欄從1-1500和檢查單元包含在裏面「FEAS」。如果確實如此,它會將該行復制並粘貼到不同的工作表中。我知道IF語句是正確的,因爲如果我用其他條件替換「IF」行(未找到),它就可以工作。
任何想法?
'ws.cells''ws2.cells'也許。是'ws.Range(Cells(i,2),Cells(i,2))。'不僅僅是'ws.range(cells(I,2))'這會搜索一個單元嗎? –
一次,你在每次循環迭代開始時都要設置'Row = 2'。我想你會希望這發生在循環之外...... – Noceo
什麼是錯誤? – Quint