VBA 中的单元格选择
在接下来的这篇文章中,我们将讨论 VBA 中的单元格选择以及如何在 VBA 中选择单元格范围。
VBA 允许我们选择工作表中的一个单元格、单元格范围或所有单元格。你可以使用 Selection
对象操作选定的单元格或内容。
在 VBA 中选择单个单元格
我们可以使用 Select
方法在工作表中选择一个单元格。以下代码将选择 ActiveWorksheet
中的单元格 B2
。
# VBA
Range("B2").Select
或者我们可以使用另一种方法,如下所示。
# vba
Cells(2, 2).Select
两个代码的输出如下所示。
在 VBA 中选择一系列单元格
我们可以使用 Select
技术和 Range
对象在工作表中选择一组单元格。以下代码将选择 A1:B5
,如下所示。
# VBA
Range("A1:B5").Select
输出:
在 VBA 中选择一系列不连续的单元格
在 VBA 中,你可以通过使用逗号分隔单元格或范围来选择不相邻的单元格或范围。以下代码将允许你选择单元格 B1
、D1
和 F1
,如下所示。
# VBA
Range("B1, D1, F1").Select
输出:
我们还可以使用 VBA 选择一组不连续的范围。以下代码将选择 A1:A5
和 B5:B8
,如下所示。
# VBA
Range("A1:A5, B5:B8").Select
输出:
在 VBA 中选择工作表中的所有单元格
我们可以在 VBA 的帮助下选择工作表中的所有单元格。下面的代码将选择工作表中的所有单元格。
# VBA
Cells.Select
输出:
在 VBA 中选择一行
我们可以借助 Row
对象和我们要选择的行的索引号来选择工作表中的特定行。下面的代码将选择我们工作表中的第一行。
# VBA
Rows(2).Select
输出:
在 VBA 中选择一列
我们可以借助 Column
对象和我们要选择的列的索引号来选择工作表中的特定列。以下代码将在下面的工作表中选择 B 列。
# VBA
Columns(2).Select
输出:
在 VBA 中选择列中的最后一个非空单元格
我们在单元格 B1
、B2
、B3
和 B4
中有数据,我们想要选择最后一个非空白单元格,它可能是列中的单元格 B4
。我们可以使用 VBA 和 Range.End
方法来执行此操作。
Range.End
方法可以采用这四个选项:xlToLeft
、xlToRight
、xlUp
和 xlDown
。
下面的代码将选择最后一个非空白单元格,在这种情况下为 B4
,如果 B1
是活动单元格,如下所示。
# VBA
Range("B1").End(xlDown).Select
输出:
在 VBA 中选择一行中的最后一个非空单元格
假设我们在单元格 A2
、B2
、C2
、D2
和 E2
中有数据,我们想要选择最后一个非空白单元格,它可能是该行中的单元格 E2
.我们可以使用 VBA 和 Range.End
方法。
下面的代码将选择最后一个非空白单元格,在这种情况下为 E2
,如果 A2
是活动单元格,如下所示。
# VBA
Range("A2").End(xlToRight).Select
输出:
在 VBA 中选择当前区域
我们可以使用 Range
对象的 CurrentRegion
属性来选择给定输入单元格周围的空白和非空白单元格的矩形范围。如果我们在单元格 A2
、B2
和 C2
中有数据,以下代码将选择单元格 A2
周围的这个区域:
# VBA
Range("A2").CurrentRegion.Select
输出:
在 VBA 中选择相对于另一个单元格的单元格
我们可以使用 Offset
属性来选择一个相对于另一个单元格的单元格。下一个代码向我们展示了如何选择单元格 C3
、靠近单元格 A1
的两行和两列。
# VBA
Range("A1").Offset(2, 2).Select
输出:
在 VBA 中选择一个命名范围
我们也可以选择命名范围。假设我们将单元格命名为 B1:B4
代码。
我们可以使用下面的代码来选择这个命名范围,如下图。
# VBA
Range("Code").Select
输出:
在 VBA 中选择另一个工作表上的单元格
我们首先需要使用 Worksheets.Activate
方法激活工作表以选择另一个工作表上的单元格。下一个代码将允许你选择 Sheet2
上的单元格 A4
。
# VBA
Worksheets("Sheet2").Activate
Range("A4").Select
输出:
在 VBA 中操作 Selection
对象
一旦我们选择了一个单元格或单元格范围,我们可以参考 Selection
对象来操作这些单元格。以下代码选择单元格 B1:D1
并将这些单元格的字体设置为 Calibri,将字体粗细设置为粗体,将字体样式设置为斜体,并将填充颜色设置为蓝色。
# VBA
Sub newFunc()
Range("B1:D4").Select
Selection.Font.Name = "Calibri"
Selection.Font.Bold = True
Selection.Font.Italic = True
Selection.Interior.Color = vbBlue
End Sub
输出:
在 VBA 中使用 With
构造
我们可以使用 With
或 End With
语句关联上面的示例,以仅引用一次 Selection
对象。这会不断输入,通常会使你的代码更易于阅读。
# VBA
Sub newFunc()
Range("B1:D4").Select
With Selection
.Font.Name = "Calibri"
.Font.Bold = True
.Font.Italic = False
.Interior.Color = vbBlue
End With
End Sub
输出: