Excel VBA Range 对象
什么是 VBA Range?
VBA Range 对象代表 Excel 工作表中的单元格或多个单元格。它是 Excel VBA 中最重要的对象。通过使用 Excel VBA range 对象,您可以引用:
- 单个单元格
- 一行或一列单元格
- 一组选定的单元格
- 3D 范围
正如我们在上一教程中所讨论的,VBA 用于录制和运行宏。但是 VBA 如何确定需要执行的工作表中的哪些数据呢?这就是 VBA Range 对象派上用场的地方。
VBA 中引用对象的介绍
引用 Excel 的 VBA Range 对象和对象限定词。
- 对象限定词 (Object Qualifier):用于引用对象。它指定您引用的工作簿或工作表。
要操作这些单元格的值,需要使用属性和方法。
- 属性 (Property):属性存储有关对象的信息。
- 方法 (Method):方法是对象将执行的操作。Range 对象可以执行诸如选择、复制、清除、排序等操作。
VBA 遵循对象层次结构模式来引用 Excel 中的对象。您必须遵循以下结构。请记住,这里的“.”连接了每个不同级别的对象。
Application.Workbooks.Worksheets.Range
有两种主要的默认对象类型。
如何使用 Range 属性引用 Excel VBA Range 对象
Range 属性可以应用于两种不同类型的对象。
- Worksheet 对象
- Range 对象
Range 属性的语法
- 关键字“Range”。
- 跟在关键字后面的括号
- 相关的单元格范围
- 引号(“ ”)
Application.Workbooks("Book1.xlsm").Worksheets("Sheet1").Range("A1")
当您如上所示引用 Range 对象时,它被引用为完全限定的引用。您已明确告诉 Excel 您想要哪个范围、哪个工作表以及在哪张工作表上。
示例:MsgBox Worksheet(“sheet1”).Range(“A1”).Value
使用 Range 属性,您可以执行许多任务,例如:
- 使用 Range 属性引用单个单元格
- 使用 Worksheet.Range 属性引用单个单元格
- 引用整行或整列
- 使用 Worksheet.Range 属性引用合并的单元格,还有更多
因此,涵盖 Range 属性的所有场景会太冗长。对于上面提到的场景,我们将仅为其中一个演示一个示例。使用 Range 属性引用单个单元格。
使用 Worksheet.Range 属性引用单个单元格
要引用单个单元格,您必须引用单个单元格。
语法很简单:“Range(“Cell”)”。
在这里,我们将使用“.Select”命令从工作表中选择单个单元格。
第 1 步) 在此步骤中,打开您的 Excel。
步骤 2) 在此步骤中,
- 点击
按钮。
- 这将打开一个窗口。
- 在此输入您的程序名称,然后点击“OK”按钮。
- 这将带您到主 Excel 文件,从顶部菜单点击“停止录制”按钮以停止录制宏。
第 3 步) 下一步,
- 点击宏按钮
从顶部菜单。它将打开下面的窗口。
- 在此窗口中,点击“编辑”按钮。
第 4 步) 上一步将打开文件名为“Single Cell Range”的 VBA 代码编辑器。为选择 Excel 中的范围“A1”输入如下所示的代码。
第 5 步) 现在保存文件 并按如下方式运行程序。
第 6 步) 程序执行后,您将看到单元格“A1”被选中。
同样,您也可以选择一个具有特定名称的单元格。例如,如果您想搜索名为“Guru99- VBA Tutorial”的单元格。您需要运行如下所示的命令。它将选择具有该名称的单元格。
Range(“Guru99- VBA Tutorial”).Select
要应用其他 Range 对象,这里是代码示例。
用于在 Excel 中选择单元格的 Range | 声明的 Range |
---|---|
单行 | Range(“1:1”) |
单列 | Range(“A: A”) |
连续单元格 | Range(“A1:C5”) |
不连续单元格 | Range(“A1:C5, F1:F5”) |
两个范围的交集 | Range(“A1:C5 F1:F5”)
(对于交集单元格,请记住没有逗号运算符) |
合并单元格 | Range(“A1:C5”)
(使用“merge”命令合并单元格) |
Cells 属性
与 Range 类似,在 VBA 中,您也可以使用“Cells Property”。唯一的区别是它有一个“item”属性,您可以使用它来引用工作表上的单元格。Cells 属性在编程循环中很有用。
例如,
Cells.item(Row, Column)。下面的两行都引用单元格 A1。
- Cells.item(1,1) 或
- Cells.item(1,”A”)
Range Offset 属性
Range offset 属性将从其原始位置偏移行/列。根据声明的范围,选择单元格。请参阅下面的示例。
例如,
Range("A1").offset(Rowoffset:=1, Columnoffset:=1).Select
这将导致结果为单元格 B2。offset 属性会将 A1 单元格移动到 1 列和 1 行之外。您可以根据需要更改 rowoffset / columnoffset 的值。您可以使用负值 (-1) 向后移动单元格。
下载包含上述代码的 Excel 文件
摘要
- VBA Range 对象代表 Excel 工作表中的单元格或多个单元格
- 单个单元格
- 一行或一列单元格
- 一组选定的单元格
- 3D 范围
- 要操作单元格值,需要使用属性和方法
- 属性存储有关对象的信息
- 方法是对象将执行的操作,例如选择、合并、排序等。
- VBA 遵循对象层次结构模式,使用“.”运算符引用 Excel 中的对象
- Range 属性可以应用于两种不同类型的对象
- Worksheet 对象
- Range 对象