在不知道Excel / VBA中包含数据的行数或列数的情况下选择范围

时间:2016-02-28 20:18:24

标签: excel vba excel-vba

我正在寻找两种不同类型的选择代码。一个代码将在L形状中选择一列中的所有行以及一行中的所有列。在具有A1:A10范围内的数据和仅来自col A-K的第10行中的数据的示例中。选择看起来像L。如何在不知道有多少行或列包含数据的情况下执行此操作?

第二个代码将具有相同的数据,但需要在该示例中选择整个范围A1:K10,但代码需要选择具有该数据的任何范围。

2 个答案:

答案 0 :(得分:0)

我找到了答案。我必须做一个工会。这是最后的联合代码。

Sub mywork()

Dim ws As Worksheet
Dim lRow As Long, lCol As Long
Dim rng As Range

'~~> Set this to the relevant worksheet
Set ws = [Sheet1]

With ws
    '~~> Get the last row and last column
    lRow = .Range("A" & .Rows.Count).End(xlUp).Row
    lCol = .Cells(lRow, .Columns.Count).End(xlToLeft).Column

    '~~> Set the range
    Set rng = .Range(.Cells(lRow, 1), .Cells(lRow, lCol))

End With
Set rng = Application.Union(Range("A1:A" & lRow), rng)

rng.Select

End Sub

答案 1 :(得分:0)

activesheet.usedrange.address应告诉您使用的范围。

在你的情况下,这样的事情应该有效:[sheet1].usedrange.select(替换模块中的所有代码)

这里的好处是你不是很难编码" A1:A"对于最后识别的单元格,如果顶部有空行,则效果很好。