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에서 원본 워크 시트의 내용을 새 워크 시트로 전혀 복사하지 않습니다. 어떻게 작동시킬 수 있습니까?
Worksheets("Original").Rows(i).EntireRow.Copy Worksheets("NEW WS").Range("A" & CStr(newLastRow + 1)).EntireRow
하는 작업을해야 :
당신이 데이터를 새로운 시트의 마지막 행을 찾으 1을 추가 한 다음 복사해야합니다. 마지막 행을 찾으려면 [this] (http://stackoverflow.com/questions/11169445/error-finding-last-used-cell-in-vba)를 참조하십시오. –