我正在使用vba将一些数据从一张纸粘贴到另一张。
第一个按钮按旨在设计(更新一行i45等(。
。第二个按钮压力是将数据粘贴到下一行(i46等(,因为它是空行(,但实际上它更新了行i21任何后续按下只需更新i21覆盖。
您可以检查我做错了什么。
Private Sub CommandButton1_Click()
Application.ScreenUpdating = False
Dim copySheet As Worksheet
Dim pasteSheet As Worksheet
Set copySheet = Worksheets("Raw")
Set pasteSheet = Worksheets("Week Data (all)")
copySheet.Range("H15:AA15").Copy
pasteSheet.Cells(45, 9).End(xlUp).Offset(1, 0).PasteSpecial xlPasteValues
Application.CutCopyMode = False
Application.ScreenUpdating = True
End Sub
那是因为使用pasteSheet.Cells(45, 9)
,您始终在第45行开始搜索。相反,您应该在.Rows.Count
处启动搜索,这是列中的绝对最后一行(即1048576(。因此,尝试...
With pasteSheet
.Cells(.Rows.Count, 9).End(xlUp).Offset(1, 0).PasteSpecial xlPasteValues
End With
也是如此。
Private Sub CommandButton1_Click()
Dim vDB
Dim rngT As Range
Dim copySheet As Worksheet
Dim pasteSheet As Worksheet
Application.ScreenUpdating = False
Set copySheet = Worksheets("Raw")
Set pasteSheet = Worksheets("Week Data (all)")
vDB = copySheet.Range("H15:AA15")
Set rngT = pasteSheet.Cells(Rows.Count, 9).End(xlUp)(2)
rngT.Resize(UBound(vDB, 1), UBound(vDB, 2)) = vDB
Application.ScreenUpdating = True
End Sub