如何在vba中使用单元格作为变量?
要将范围或单个单元格用作变量,必须首先使用范围数据类型声明该变量。完成此操作后,您需要使用 range 对象指定从一个单元格到该变量的范围。这还使您可以访问可用于范围的所有属性和方法。
- 使用关键字“Dim”并输入变量名称。
- 将关键字声明为Range 。
- 输入变量名称。
- 指定要分配给变量的范围。
将选择设置为范围变量
您还可以使用变量的选定范围,然后使用该变量访问属性和方法。考虑以下代码。
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")