将工作表复制到另一张工作表缺少什么?当前Sub运行时并不包括所有行

时间:2016-06-21 17:13:56

标签: excel vba excel-vba

我对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

1 个答案:

答案 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

如果你不这样做,它会查看你在给定工作簿中活动的任何工作表。