我对VBA比较陌生。尝试复制工作表时,运行Sub时并不包括所有行。源文档中的行数是可变的,因此我使用了“LastRow”。请让我知道我做错了什么?
Sub CopySheetsl()
Dim wb As Workbook, wb1 As Workbook
Dim LastRow As Long
Set wb = Workbooks.Open("L:\x\Y\z\xxx.xlsx")
Set wb1 = Workbooks("macro x v.01.xlsm")
LastRow = range("A:Y").Find("*", SearchOrder:=xlByRows, SearchDirection:=xlPrevious).Row
wb1.Sheets("Detail").range("C1", "AN1" & LastRow) = wb.Sheets("Detail_2").range("A1", "AL1" & LastRow).Value
wb.Close
End Sub
答案 0 :(得分:1)
罪魁祸首可能是这条线。
LastRow = range("A:Y").Find("*", SearchOrder:=xlByRows, SearchDirection:=xlPrevious).Row
尝试显式引用要从中复制的工作簿和工作表。
LastRow = wb.Sheets("sheet name here").range("A:Y").Find("*", SearchOrder:=xlByRows, SearchDirection:=xlPrevious).Row
如果你不这样做,它会查看你在给定工作簿中活动的任何工作表。