VBA常用技巧(一) 联系客服

发布时间 : 星期二 文章VBA常用技巧(一)更新完毕开始阅读1ad861fafab069dc502201b3

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属性,在取得单元格对象后便能获得该单元格的相关属性,