如何在vba中使用单元格作为变量?

要将范围或单个单元格用作变量,必须首先使用范围数据类型声明该变量。完成此操作后,您需要使用 range 对象指定从一个单元格到该变量的范围。这还使您可以访问可用于范围的所有属性和方法。

  1. 使用关键字“Dim”并输入变量名称。
  2. 将关键字声明为Range
  3. 输入变量名称。
  4. 指定要分配给变量的范围。
使用关键字dim

将选择设置为范围变量

您还可以使用变量的选定范围,然后使用该变量访问属性和方法。考虑以下代码。

 Sub vba_range_variable() Dim rng As Range Set rng = Selection Selection.Clear End Sub

但有一点需要注意,当您选择范围以外的对象时,VBA 会显示错误。

选择范围以外的对象

但这也是一种动态方法,您不需要一次又一次地更改范围。

使用变量复制范围

将变量声明为范围后,您还可以使用该变量名称复制该范围。假设您已将范围 A1:A10 声明为 rng 变量(上面的示例),您可以使用以下代码复制它。

使用变量复制排列
 Sub vba_range_variable() Dim rng As Range Set rng = Range("A1:A10") rng.Copy End Sub

在函数中使用范围变量

在编写宏时,您还可以使用范围变量来引用函数中的范围。考虑以下代码。

 Sub vba_range_variable() Dim iNames As Variant Dim rng As Range Set rng = Range("A1:A10") Range("B1") = WorksheetFunction.Max(rng) End Sub
在函数中使用范围变量

它取A1:A10范围内的值,由于需要使用变量“rng”,所以我们使用最大值的变量来输出它。

相关:如何在 VBA 中使用 WorksheetFunction

计算行数和列数

正如我之前所说,一旦将变量指定为范围,您还将获得所有属性和访问方法。想象一下,如果您想计算行和列的数量。这是可以使用的代码。

 Sub vba_range_variable() Dim rng As Range Set rng = Range("A1:A10") MsgBox "This range has " & _ rng.Rows.Count & " row(s) and " & _ rng.Columns.Count & " coulmn(s)." End Sub
计算行数和列数

当您运行此代码时,它会显示一条消息,其中包含您在变量中指定的范围内的行数和列数。

定义具有范围的工作表

在上面的所有示例中,我们使用了范围而没有提及工作表,因此当您运行此代码时,VBA 将始终引用活动工作表中的范围。但如果要引用特定的工作表,则需要使用带有范围的工作表对象

 Dim rng As Range Set rng = Worksheets("Sheet1").Range("A1:A10")

添加评论

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