选择具有空行的范围单元格

时间:2016-03-18 12:53:18

标签: excel vba

我一直在努力弄清楚如何编写此选择范围宏以包含空行。工作表是具有可变列数和行数的图表。这就是我到目前为止所做的:

Sub Macro1()
    Range("A5").Select
    Range(Selection, Selection.End(xlToRight)).Select
    Range(Selection, Selection.End(xlDown)).Select
    Selection.Copy
End Sub

宏中的选择步骤只会到那个空白行,并且不会再进一步​​(显然是因为它空白了)。出于这个原因,我尝试调整这种不连续的代码类型,但没有运气:

Sub SelectRangeDown_Discontiguous()
    Range("A5", Range("A65536").End(xlUp)).Select
End Sub

我希望有人可以帮我找出编写此代码的最佳方法吗?我在正确的道路上吗?

2 个答案:

答案 0 :(得分:3)

如果您使用.End(xlToRight).End(xlDown),您将停在空白单元格。如果您使用的是Range("A65536").End(xlUp),那么您只选择一个列,但是您可以从A5下载到最后一个填充的单元格并绕过临时空白单元格。横向扩展后一种方法。

Sub Macro1()
    with Range("A5")
        .resize(cells(rows.count, "A").end(xlup).row - (.row - 1), _
                cells(5, columns.count).end(xltoleft).column - (.column - 1)).Copy
    end with
End Sub

对于.Parent Worksheet Object,这会更好。

你不需要.Select方法来.Copy¹。

¹有关远离依赖选择和激活以实现目标的更多方法,请参阅How to avoid using Select in Excel VBA macros

答案 1 :(得分:1)

考虑:

$encoded = encode_entities($input, '<>&"');