我在Excel中使用vba創建宏。 我有一個for循環遍歷所有行,並將符合條件的特定行復制到新工作表。目前,這個宏的工作原理,我把它複製到相同的行號,但這導致空行存在,我擺脫了。有沒有辦法通過將行復制到最後一次使用的行之後來做到這一點?將行從工作表複製到新工作表結尾Excel VBA
這裏是我的代碼:
' Set the lastRow variable
lastRow = Worksheets("Original").Cells.Find("*", [A1], , , xlByRows, xlPrevious).ROW
' The Total is in column K and the Class is in Column C
On Error Resume Next
For i = lastRow To 1 Step -1
' Check the columns for Total and Class values
If (Worksheets("Original").Cells(i, "K").Value2) <> 0 Then
Worksheets("Original").Rows(i).Copy Worksheets("NEW WS").Cells(i, 1)
'Worksheets("Original").Rows(i).Copy Worksheets("NEW WS").Cells(Worksheets("NEW WS").Rows.Count, col).End(xlUp).ROW
ElseIf ((Worksheets("Original").Cells(i, "K").Value2) = 0) Then
If (Worksheets("Original").Cells(i, "C").Value2) < 81 Or (Worksheets("Original").Cells(i, "C").Value2) > 99 Then
Worksheets("Original").Rows(i).Copy Worksheets("NEW WS").Cells(i, 1)
'Worksheets("Original").Rows(i).Copy Worksheets("NEW WS").Cells(Worksheets("NEW WS").Rows.Count, col).End(xlUp).ROW
End If
End If
Next i
Worksheets("NEW WS").Columns(1).SpecialCells(xlCellTypeBlanks).EntireRow.Delete
註釋行: Worksheets("Original").Rows(i).Copy Worksheets("NEW WS").Cells(Worksheets("NEW WS").Rows.Count, col).End(xlUp).ROW
不要工作。我不知道爲什麼。當我嘗試使用此代碼時,Excel不會將原始工作表中的任何內容複製到新工作表中。 我怎樣才能使它工作?
你需要找到新的工作表的最後一排,把它加1,然後複製數據。要查找最後一行,請參閱[this](http://stackoverflow.com/questions/11169445/error-finding-last-used-cell-in-vba) –