excel 对于计算列中最后一行的代码,为什么我收到应用程序定义或对象定义的错误?

jei2mxaa  于 2023-03-20  发布在  其他
关注(0)|答案(1)|浏览(136)

我写这个宏是为了复制一个工作表中的一个单元格区域,然后动态粘贴到另一个工作表中的最后13行数据,并将数据粘贴到最后一行。每次我试图运行下面的代码时,我都会收到一个 Application defined or object defined error,并且我的vba编辑器中的调试器会突出显示这行代码:lastRow = ws2.Cells(ws2.Rows.Count, "G").End(xlUp).Row作为错误的来源。有人能帮我找出我做错了什么吗???

Sub DataTransfer()
Dim wb1 As Workbook
Dim wb2 As Workbook
Dim ws1 As Worksheet
Dim ws2 As Worksheet
Dim lastRow As Integer

Set wb1 = Workbooks("Workbook1.xlsm")
Set wb2 = Workbooks("Workbook2.xlsx")
Set ws1 = wb1.Worksheets("Sheet1")
Set ws2 = wb2.Worksheets("Sheet1")

lastRow = ws2.Cells(ws2.Rows.Count, "G").End(xlUp).Row

ws1.Range("B3:P16").Copy
ws2.Range("G" & lastRow - 11 & ":P" & lastRow + 1).PasteSpecial Paste:=xlPasteValues

End Sub
htrmnn0y

htrmnn0y1#

我刚刚意识到我复制的范围与附加了.PasteSpecial方法的范围大小不一样,我将最后一行改为ws2.Range("G" & lastRow - 12).PasteSpecial Paste:=xlPasteValues,它修复了所有问题。

相关问题