3. 使用Union方法
使用Union方法可以将多个非连续区域连接起来成为一个区域,从而可以实现对多个非连续区域一起进行操作,如下面的代码所示。
#001 Sub UnSelect()
#002 Union(Sheet5.Range(\#003 End Sub
代码解析:
UnSelect过程选择单元格A1:D4和E5:H8所组成的区域。Union方法返回两个或多个区域的合并区域,语法如下:
expression.Union(Arg1, Arg2, ...)
其中参数expression是可选的,返回一个Application对象。 参数Arg1, Arg2, ...是必需的,至少指定两个Range对象。
运行UnSelect过程,选中单元格A1:D4和E5:H8所组成的区域,如图 i-4所示。
图 i-4
使用Union方法将多个非连续区域连接成一个区域
4. 使用UsedRange属性
使用UsedRange属性返回指定工作表上已使用单元格组成的区域,如下面的代码所示。
#001 Sub UseSelect()
#002 Sheet6.UsedRange.Select #003 End Su
代码解析:
UseSelect过程使用UsedRange属性选择工作表上已使用单元格组成的区域,包括空单元格。如工作表中已使用A1单元格和D8单元格,运行UseSelect过程将选择A1到D8单元格区域,如图 i-5所示。
图 i-5
使用UsedRange属性选择已使用区域
5. 使用CurrentRegion属性
使用CurrentRegion属性返回指定工作表上当前的区域,如下面的代码所示。
#001 Sub CurrentSelect()
#002 Sheet7.Range(\#003 End Sub
代码解析:
CurrentSelect过程使用CurrentRegion属性选择工作表上A5单元格当前的区域,当前区域是一个边缘是任意空行和空列组合成的范围。
运行CurrentSelect过程将选择A5到B6单元格区域,如图 i-6所示。
图 i-6
CurrentRegion属性选择当前的区域
ii. 选定单元格区域的方法
1. 使用Select方法
在VBA中一般使用Select方法选定单元格或单元格区域,如下面的代码所示。
#001 Sub RngSelect() #002 Sheet3.Activate
#003 Sheet3.Range(\:B10\#004 End Sub
代码解析:
RngSelect过程使用Select方法选定Sheet3中的A1:B10单元格区域,Select方法应用于Range对象时语法如下:
expression.Select(Replace)
参数expression是必需的,一个有效的对象。 参数Replace是可选的,要替换的对象。
使用Select方法选定单元格时,单元格所在的工作表必需为活动工作表,所以在第2行代码中先使用Activate方法使Sheet3成为活动工作表,否则Select方法有可能出错,显示如图 ii-1所示的错误提示。
图 ii-1
Select方法无效提示
2. 使用Activate方法
还可以使用Activate方法选定单元格或单元格区域,如下面的代码所示。
#001 Sub RngActivate() #002 Sheet3.Activate
#003 Sheet3.Range(\#004 End Sub
代码解析:
RngActivate过程使用Activate方法选定Sheet3中的A1:B10单元格区域,Activate方法应用于Range对象时语法如下:
expression.Activate
使用Activate方法选定单元格时,单元格所在的工作表也必需为活动工作表,否则Activate方法有可能出错,显示如图 ii-2所示的错误提示。
图 ii-2
Activate方法无效提示
3. 使用Goto方法
使用Goto方法无需使单元格所在的工作表成为活动工作表,如下面的代码所示。
#001 Sub RngGoto()
#002 Application.Goto Reference:=Sheet3.Range(\:B10\#003 End Sub
代码解析:
RngGoto过程使用Goto方法选定Sheet3中的A1:B10单元格区域,并滚动工作表以显示该单元格。
Goto方法选定任意工作簿中的任意区域或任意Visual Basic过程,并且如果该工作簿未处于活动状态,就激活该工作簿,语法如下:
expression.Goto(Reference, Scroll)
参数expression是必需的,返回一个Application 对象。
参数Reference是可选的,Variant类型,指定目标。可以是Range对象、包含R1C1-样式记号的单元格引用的字符串或包含 Visual Basic 过程名的字符串。如果省略本参数,目标将是最近一次用Goto方法选定的区域。
参数Scroll是可选的,Variant类型,如果该值为True,则滚动窗口直至目标区域的左上角单元格出现在窗口的左上角。如果该值为False,则不滚动窗口。默认值为False。
iii. 获得指定行、列中的最后一个非空单元格
使用VBA对工作表进行操作时,经常需要定位到指定行或列中最后一个非空单元格,此时可以使用Range对象的End属性,在取得单元格对象后便能获得该单元格的相关属性,