VBA有助于在动态范围内选择整行

Jam*_*hen 1 excel vba excel-vba

嗨大家先谢谢大家.我有一个数据集.让我们说A3到Z30.行数和列数各不相同.集合中也有空白.所以我想说我想选择整个部分,但在Z29和X30中使用的是空白

Range("A3").Select
    Range(Selection, Selection.End(xlDown)).Select
    Range(Selection, Selection.End(xlToRight)).Select
    Selection.Copy
Run Code Online (Sandbox Code Playgroud)

不会起作用.

但是A列中的值是连续的.所以我认为第一部分将起作用

Range("A3").Select
    Range(Selection, Selection.End(xlDown)).Select
Run Code Online (Sandbox Code Playgroud)

现在我知道这可能看起来像elementry但我怎么选择我刚刚突出显示的所有行?这需要是动态的,因为正如我所说,列数和行数不同.

哦,如果你可以帮助我找出下一部分,可以获得额外的业力和荣誉.我需要选择范围并在最后一行之后立即粘贴它,但是在这种情况下第一个单元格或A31中的值需要更改并且从sheet2中的列表中拉出

Lop*_*ded 5

使用该.EntireRow方法.

这是一个例子:

Dim report as Worksheet
Set report = Excel.ActiveSheet

report.cells(1,1).EntireRow.Select
Run Code Online (Sandbox Code Playgroud)

如果要自己选择单元格,可以使用该.UsedRange方法.

这是一个例子:

Dim report As Worksheet
Set report = Excel.ActiveSheet

report.Range(report.Cells(1, 1), report.Cells(1, report.UsedRange.Columns.Count)).Select
Run Code Online (Sandbox Code Playgroud)

编辑

以下是您问题第二部分的示例(根据要求):

Sub test2()

Dim report As Worksheet
Set report = Excel.ActiveSheet

report.Cells(1, 1).EntireRow.Copy
report.Cells(report.UsedRange.Rows.Count + 1, 1).EntireRow.PasteSpecial xlPasteAll


End Sub
Run Code Online (Sandbox Code Playgroud)

请务必注意,该.UsedRange方法还包括没有值但已由用户格式化的单元格; 例如,如果您将粗体字体(即使您不添加文本本身)添加到第1000行的单元格中,您.UsedRange.Rows.Count将为1000.

此外,您可以在以下链接中查看我的答案以获取更多指导.我被告知这些笔记对初学者非常有帮助: