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 属性的语法

  1. 关键字“Range”。
  2. 跟在关键字后面的括号
  3. 相关的单元格范围
  4. 引号(“ ”)
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。

Single Cell using the Worksheet.Range Property

步骤 2) 在此步骤中,

  • 点击 使用 Worksheet.Range 属性的单个单元格按钮。
  • 这将打开一个窗口。
  • 在此输入您的程序名称,然后点击“OK”按钮。
  • 这将带您到主 Excel 文件,从顶部菜单点击“停止录制”按钮以停止录制宏。

Single Cell using the Worksheet.Range Property

第 3 步) 下一步,

  • 点击宏按钮 使用 Worksheet.Range 属性的单个单元格从顶部菜单。它将打开下面的窗口。
  • 在此窗口中,点击“编辑”按钮。

Single Cell using the Worksheet.Range Property

第 4 步) 上一步将打开文件名为“Single Cell Range”的 VBA 代码编辑器。为选择 Excel 中的范围“A1”输入如下所示的代码。

Single Cell using the Worksheet.Range Property

第 5 步) 现在保存文件 使用 Worksheet.Range 属性的单个单元格并按如下方式运行程序。

Single Cell using the Worksheet.Range Property

第 6 步) 程序执行后,您将看到单元格“A1”被选中。

Single Cell using the Worksheet.Range Property

同样,您也可以选择一个具有特定名称的单元格。例如,如果您想搜索名为“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 文件

下载上面的 Excel 代码

摘要

  • VBA Range 对象代表 Excel 工作表中的单元格或多个单元格
  • 单个单元格
  • 一行或一列单元格
  • 一组选定的单元格
  • 3D 范围
  • 要操作单元格值,需要使用属性方法
  • 属性存储有关对象的信息
  • 方法是对象将执行的操作,例如选择、合并、排序等。
  • VBA 遵循对象层次结构模式,使用“.”运算符引用 Excel 中的对象
  • Range 属性可以应用于两种不同类型的对象
  • Worksheet 对象
  • Range 对象