如何在vba中使用usedrange属性?

在 VBA 中,UsedRange 属性表示包含数据的工作表的范围。使用的范围从工作表中第一个有值的单元格到最后一个有值的单元格。就像下面的示例一样,您使用了从 A1 到 C11 的范围。

使用的范围属性

注意:UsedRange 属性是只读属性

使用UsedRange编写代码

使用以下代码。

  1. 首先,您需要指定电子表格。
  2. 然后输入句点 (.) 并输入“UsedRange”。
  3. 之后,使用您想要使用的属性或方法。
  4. 最后,运行代码。
 Sub vba_used_range() ActiveSheet.UsedRange.Clear End Sub

上面的代码清除了活动工作表的已使用范围中的所有内容。

复制使用的范围

使用以下代码复制整个UsedRange。

复制整个使用范围
 Sub vba_used_range() ActiveSheet.UsedRange.Copy End Sub

计算已使用范围内的行数和列数

您可以使用 count 属性来计算已使用范围的行数和列数。

 MsgBox ActiveSheet.UsedRange.Rows.Count MsgBox ActiveSheet.UsedRange.Columns.Count

上面的两行代码显示一个消息框,其中包含已使用范围内的行数和列数。

激活已使用范围中的最后一个单元格

您还可以启用所用范围中的最后一个单元格(这将是工作表中使用的最后一个单元格)。考虑以下代码。

使用范围的最后一个活动单元格
 Sub vba_used_range() Dim iCol As Long Dim iRow As Long iRow = ActiveSheet.UsedRange.Rows.Count iCol = ActiveSheet.UsedRange.Columns.Count ActiveSheet.UsedRange.Select Selection.Cells(iRow, iCol).Select End Sub

此代码使用UsedRange 属性获取行数和列数,然后使用这些数字选择所用区域中的最后一个单元格。

请参阅另一个工作表中的UsedRange

如果您尝试引用活动工作表以外的工作表中使用的范围,VBA 将显示如下错误。

另一个工作表中使用的范围

因此,您所引用的工作表必须被激活(只有这样您才能使用UsedRange 属性)。

 Sub vba_used_range() Worksheets("Sheet4").Activate Worksheets("Sheet4").UsedRange.Select End Sub

这意味着您无法引用封闭工作簿中使用的范围。但您可以先打开工作簿,然后启用工作表以使用UsedRange 属性。

获取所使用范围的地址

使用以下代码行获取所使用范围的地址。

 Sub vba_used_range() MsgBox ActiveSheet.UsedRange.Address End Sub

计算已使用范围内的空单元格数量

以下代码使用FOR (For Each) 循环,循环遍历所使用范围内的所有单元格,并对空单元格进行计数。

 Sub vba_used_range() Dim iCell As Range Dim iRange As Range Dim c As Long Dim i As Long Set iRange = ActiveSheet.UsedRange For Each iCell In ActiveSheet.UsedRange c = c + 1 If IsEmpty(iCell) = True Then i = i + 1 End If Next iCell MsgBox "There are total " & c & _ " cell(s) in the range, and out of those " & _ i & " cell(s) are empty." End Sub

当您运行此代码时,它会显示一个消息框,其中包含单元格总数和空单元格数。

添加评论

您的电子邮箱地址不会被公开。 必填项已用 * 标注