VBA常用技巧(4)

2019-01-12 10:56

VBA常用技巧解析

#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方法有可能出错,显示如图 2-1所示的错误提示。

图 2-1 Select方法无效提示

2-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方法有可能出错,显示如图 2-2所示的错误提示。

16

VBA常用技巧解析

图 2-2 Activate方法无效提示

2-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。

技巧3 获得指定行、列中的最后一个非空单元格

使用VBA对工作表进行操作时,经常需要定位到指定行或列中最后一个非空单元格,此时可以使用Range对象的End属性,在取得单元格对象后便能获得该单元格的相关属性,

17

VBA常用技巧解析

如单元格地址、行列号、数值等,如下面的代码所示。

#001 Sub LastRow() #002 Dim rng As Range

#003 Set rng = Sheet1.Range(\

#004 MsgBox \列中最后一个非空单元格是\#005 & \行号\数值\#006 Set rng = Nothing #007 End Sub

代码解析:

LastRow过程使用消息框显示工作表中A列最后非空单元格的地址、行号和数值。 End属性返回一个Range对象,该对象代表包含源区域的区域尾端的单元格。等同于按键,语法如下:

expression.End(Direction)

参数expression是必需的,一个有效的对象。

参数Direction是可选的,所要移动的方向,可以为表格 3-1所示的XlDirection 常量之一。

常量 xlDown xlToRight xlToLeft xlUp 值 -4121 -4161 -4159 -4162 描述 向下 向右 向左 向上 表格 3-1 XlDirection 常量

Range对象的End属性返回的是一个Range对象,因此可以直接使用该对象的属性和方法。

运行LastRow过程结果如图 3-1所示。

18

VBA常用技巧解析

图 3-1 获得A列最后一个非空单元格

通过修改相应的参数,能够获得指定行中最后一个非空单元格,如下面的代码所示。

#001 Sub LastColumn() #002 Dim rng As Range

#003 Set rng = Sheet1.Range(\

#004 MsgBox \第一行中最后一个非空单元格是\#005 & \列号\数值\#006 Set rng = Nothing #007 End Sub

代码解析:

LastColumn过程使用消息框显示工作表中第一行最后一个非空单元格的地址、列号和数值,如图 3-2所示。

图 3-2 获得第一行最后一个非空单元格

19

VBA常用技巧解析

技巧4 定位单元格

在Excel中使用定位对话框可以选中工作表中特定的单元格区域,而在VBA中则使用SpecialCells方法,如下面的代码所示。

#001 Sub SpecialAddress() #002 Dim rng As Range

#003 Set rng = Sheet1.UsedRange.SpecialCells(xlCellTypeFormulas) #004 rng.Select

#005 MsgBox \工作表中有公式的单元格为: \#006 Set rng = Nothing #007 End Sub

代码解析:

SpecialAddress过程使用SpecialCells方法选中工作表中有公式的单元格,并用消息框显示其地址。

SpecialCells方法返回一个Range对象,该对象代表与指定类型及值相匹配的所有单元格,语法如下:

expression.SpecialCells(Type, Value)

参数expression是必需的,返回一个有效的对象。

参数Type是必需的,要包含的单元格,可为表格 4-1所列的XlCellType常量之一。

常量 xlCellTypeAllFormatConditions xlCellTypeAllValidation xlCellTypeBlanks xlCellTypeComments xlCellTypeConstants xlCellTypeFormulas xlCellTypeLastCell xlCellTypeSameFormatConditions xlCellTypeSameValidation xlCellTypeVisible 值 -4172 -4174 4 -4144 2 -4123 11 -4173 -4175 12 描述 任意格式单元格 含有验证条件的单元格 空单元格 含有注释的单元格 含有常量的单元格 含有公式的单元格 使用区域中最后的单元格 含有相同格式的单元格 含有相同验证条件的单元格 所有可见单元格 表格 4-1 XlCellType常量

第3行代码将SpecialCells方法的Type参数设置为xlCellTypeFormulas,返回的是含

20


VBA常用技巧(4).doc 将本文的Word文档下载到电脑 下载失败或者文档不完整,请联系客服人员解决!

下一篇:党的群众路线教育实践活动调研报告

相关阅读
本类排行
× 注册会员免费下载(下载后可以自由复制和排版)

马上注册会员

注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信: QQ: