我是 VBA 新手,我正在尝试编写一个宏来将数据从 Product File 复制到 FileMaster。我的问题是我希望将数据复制到 FileMaster 中的下一个空行。 例如,FileMaster 填充了单元格 C50 之前的数据,我希望从单元格 C51 复制我的数据,但正在努力解决这个问题。
我的代码如下,但它不断从单元格 C2 复制数据
Dim LastRow As String
FileMaster.Activate
LastRow = ActiveSheet.Cells.Find("*", SearchOrder:=xlByRows, SearchDirection:=xlPrevious).Row
Workbooks("Product File.xlsx").Worksheets("data").Range("A2:N" & Range("A" & Rows.Count).End(xlUp).Row).Copy Workbooks("FileMaster.xlsx").Worksheets("new_template").Range("C2:N" & LastRow)
Application.CutCopyMode = False
非常感谢对此的任何帮助。非常感谢。
Range("C2:N" & LastRow)
始终从 C2 开始
你必须使用
Range("C" & LastRow)
但是您最好不要依赖任何“活动”对象(无论是工作表还是工作簿)并使用对象直接引用
Dim LastRow As String
With FileMaster.Worksheets("new_template")
LastRow = .Cells.Find("*", SearchOrder:=xlByRows, SearchDirection:=xlPrevious).Row + 1
End With
With Workbooks("Product File.xlsx").Worksheets("data")
.Range("A2:N" & .Range("A" & Rows.Count).End(xlUp).Row).Copy FileMaster.Worksheets("new_template").Range("C" & LastRow)
Application.CutCopyMode = False
End With
哦,我找到了解决方案=))))对于任何遇到同样问题的人,您可以参考我的答案,如下
Dim LastRow As String
FileMaster.Activate
LastRow = ActiveSheet.Cells.Find("*", SearchOrder:=xlByRows, SearchDirection:=xlPrevious).Row
Workbooks("Product File.xlsx").Worksheets("data").Range("A2:N" & Range("A" & Rows.Count).End(xlUp).Row).Copy Workbooks("FileMaster.xlsx").Worksheets("new_template").Range("C" & LastRow + 1)
Application.CutCopyMode = False 'cancel the copy mode