在excel vba中复制行和列(包括空格),而不使用xlDown

在excel vba中复制行和列(包括空格),而不使用xlDown,vba,excel,Vba,Excel,我想将工作表的行和列复制到新工作簿中。我可以打开并激活新书和新工作表,但我正在复制的数据当前在一张工作表上为A1:F520,在另一张工作表上为A1:G1031。中间有多个空格 在几个数据集的“组”内。 为了数据的可视化组织,我想保留这些空白。范围会随着时间的推移而改变,所以我不想定义一些特定的内容。我宁愿保持它的一般性,比如范围(“A1”,范围(“A1”。End(xlDown))。我想我可以包括一些可笑的大范围,以确保一切都在那里,但我宁愿以一种更动态(如果这是正确的话)的方式来完成 这就是我

我想将工作表的行和列复制到新工作簿中。我可以打开并激活新书和新工作表,但我正在复制的数据当前在一张工作表上为A1:F520,在另一张工作表上为A1:G1031。中间有多个空格 在几个数据集的“组”内。

为了数据的可视化组织,我想保留这些空白。范围会随着时间的推移而改变,所以我不想定义一些特定的内容。我宁愿保持它的一般性,比如范围(“A1”,范围(“A1”。End(xlDown))。我想我可以包括一些可笑的大范围,以确保一切都在那里,但我宁愿以一种更动态(如果这是正确的话)的方式来完成

这就是我到目前为止所做的:

Option Explicit

Public LGSheet As Worksheet
Public SGSheet As Worksheet
Public NewWorkbook As Workbook
Public UserYear As Integer
Sub DefineYear()

    UserYear = Application.InputBox(Prompt:="Set Date for New Workbook", Type:=1)
    Set NewWorkbook = Workbooks.Add
    Set SGSheet = Worksheets.Add
    Set LGSheet = Worksheets.Add
    Call PasteLGTandSGT

End Sub
Sub PasteLGTandSGT()

    Workbooks("Finished Products YTD Generator").Activate
    Worksheets("LGT").Activate
        Range("A1", Range("A1").End(xlDown)).Copy
    LGSheet.Activate
很明显,我已经把xlDown放在这里了,我的google fu不够强大,无法找到更多信息。

例如:

With Workbooks("Finished Products YTD Generator").Worksheets("LGT")
    .Range(.Range("A1"), .Cells(Rows.Count, 1).End(xlUp).Offset(0, 7)).Copy _
        LGSheet.Range("A1") 'or whatever
End With

请注意,您不需要激活工作表进行复制或粘贴,这是一个很好的习惯。

使用工作表底部的
End(xlUp)
-这将保留间隙,谢谢!我只是尝试了一下,但似乎不起作用。我从G1048576、A104576、G520和A520以及它们的组合中尝试了它(例如,A1048576:G1048576)。从页面的最底部,它只复制最后一行。从520开始,它只复制最后15行。我会继续摆弄它,但如果你还有其他想法,我很想听听。感谢你花时间提供帮助和提示。你的方法会将所需行数减少一半,而不是我最后写的行数。当然以后记住这一点。再次感谢!