iT邦幫忙

0
Sheets("異動檔").Activate
For i = 2 To Sheets("異動檔").Range("C2").End(xlDown).Row
If data1.Text = Cells(i, "C") Or T1.Text = Cells(i, "D").Text Then
Sheets("刪除資料").Activate
Dim nextrow As Long
nextrow = Cells(Rows.Count, 1).End(xlUp).Row + 1
Sheets("刪除資料").Cells(nextrow, 1) = Sheets("異動檔").Cells(i, "A")
Sheets("刪除資料").Cells(nextrow, 2) = Sheets("異動檔").Cells(i, "B")
Sheets("刪除資料").Cells(nextrow, 3) = Sheets("異動檔").Cells(i, "C")
Sheets("刪除資料").Cells(nextrow, 4) = Sheets("異動檔").Cells(i, "D")
Sheets("刪除資料").Cells(nextrow, 5) = Sheets("異動檔").Cells(i, "E")
Sheets("刪除資料").Cells(nextrow, 6) = Sheets("異動檔").Cells(i, "F")
Sheets("刪除資料").Cells(nextrow, 7) = Sheets("異動檔").Cells(i, "G")
Sheets("刪除資料").Cells(nextrow, 8) = Sheets("異動檔").Cells(i, "H")
Sheets("異動檔").Activate
Rows(i).Delete
End If
我查詢到的異動檔的資料刪除但我要先把異動檔的資料放在刪除資料的工作表,再刪除
這樣寫刪除可以但是看不到異動檔刪除資料的內容在刪除資料的工作表
要如何修改
可以挑戰進階技巧
VBA除錯學習https://blog.gtwang.org/programming/excel-vba-debug-error-handling/

程式建議
Sheets("刪除資料").Cells(nextrow, 1) = Sheets("異動檔").Cells(i, "A")
改成Range範圍,版面會比較乾淨
Range(Cells(nextrow,1),Cells(nextrow,8)) = Sheets("異動檔").Range(Cells(i,1),Cells(i,8))
參考:https://www.excel-easy.com/vba/range-object.html

尚未有邦友回答

立即登入回答