在 Excel VBA 中经常需要选择一个特定的单元格区域来处理它。本课程将向您展示如何使用 Range、Cells、Offset、Resize、Union、CurrentRegion 和 UsedRange 在 Excel VBA 中选择一个单元格区域。如果您想学习选择包含特定类型数据的单元格,请参考:使用 VBA 定位特殊单元格。
提示
在 Excel VBA 中使用 .Select
是一个坏习惯,学习:如何避免在 Excel VBA 中使用 Select。
选择工作表的所有单元格
Cells.Select
选择一个单元格
Cells(4, 5).Select
等效于:
Range("E4").Select
看起来 Range() 更容易阅读,而 Cells() 在循环中更容易使用。
选择一组连续的单元格
Range("C3:G8").Select
=
Range(Cells(3, 3), Cells(8, 7)).Select
=
Range("C3", "G8").Select
选择一组不连续的单元格
Range("A2,A4,B5").Select
选择一组不连续的单元格和一个范围
Range("A2,A4,B5:B8").Select
选择命名区域
Range("MyRange").Select
=
Application.Goto "MyRange"
选择整行
Range("6:6").Select
=
Rows("6").Select
选择整列
Range("D:D").Select
=
Columns("D").Select
选择一列连续数据的最后一个单元格
Range("A1").End(xlDown).Select
当此代码在以下示例表格上使用时,将选择单元格 A3。
选择一列连续数据后的第一个空单元格
Range("A1").End(xlDown).Offset(1,0).Select
当此代码在以下示例表格上使用时,将选择单元格 A4。
选择一列中的连续单元格
Range("A1", Range("A1").End(xlDown)).Select
当此代码在以下示例表格上使用时,将选择单元格区域 A1:A3。
选择 A 列中的最后一个空白单元格
Cells(Rows.count, 1).End(xlUp).Offset(1, 0).Select
当此代码在以下示例表格上使用时,将选择单元格 A9。
如果要选择 A 列中的最后一个非空单元格(上图所示的 A8 单元格)使用下列语句:
Cells(Rows.count, 1).End(xlUp).Select
选择一列中的非连续单元格
Range("A1", Range("A" & Rows.Count).End(xlUp)).Select
当此代码在以下示例表格上使用时,将选择单元格区域 A1:A8。
选择包含指定单元格的连续单元格区域
Range("A1").CurrentRegion.Select
选择相对于另一个单元格的单元格
ActiveCell.Offset(5, 5).Select
Range("D3").Offset(5, -1).Select
选择一个指定的区域,偏移它,再调整大小
Range("A1").Offset(3, 2).Resize(3, 3).Select
当此代码在以下示例表格上使用时,将选择单元格区域 C4:E6。
选择两个或多个区域的交集
Union(Range("A1:A8"), Range("D7"), Range("A1:C2")).Select
选择已用的区域
ActiveSheet.UsedRange.Select
当此代码在以下示例表格上使用时,将选择单元格区域 A1:F7。