vba常用代码解析

上传人:F****n 文档编号:102748756 上传时间:2019-10-04 格式:DOC 页数:215 大小:1.55MB
返回 下载 相关 举报
vba常用代码解析_第1页
第1页 / 共215页
vba常用代码解析_第2页
第2页 / 共215页
vba常用代码解析_第3页
第3页 / 共215页
vba常用代码解析_第4页
第4页 / 共215页
vba常用代码解析_第5页
第5页 / 共215页
点击查看更多>>
资源描述

《vba常用代码解析》由会员分享,可在线阅读,更多相关《vba常用代码解析(215页珍藏版)》请在金锄头文库上搜索。

1、EXCEL VBA常用代码解析Range对象是Excel应用程序中最常用的对象,一个Range对象代表一个单元格、一行、一列、包含一个或者更多单元格区域(可以是连续的单元格,也可以是不连续的单元格)中选定的单元格,甚至是多个工作表上的一组单元格,在操作Excel 内的任何区域之前都需要将其表示为一个Range对象,然后使用该Range对象的方法和属性。001 单元格的引用方法在VBA中经常需要引用单元格或单元格区域区域,主要有以下几种方法。001-1 使用Range属性VBA中可以使用Range属性返回单元格或单元格区域,如下面的代码所示。 Sub RngSelect() Sheet1.Ran

2、ge(A3:F6,B1:C5).Select End Sub代码解析:RangeSelect过程使用Select方法选中A3:F6,B1:C5单元格区域。Range属性返回一个Range对象,该对象代表一个单元格或单元格区域,语法如下:Range(Cell1,Cell2)参数Cell1是必需的,必须为 A1 样式引用的宏语言,可包括区域操作符(冒号)、相交区域操作符(空格)或合并区域操作符(逗号)。也可包括美元符号(即绝对地址,如“$A$1”)。可在区域中任一部分使用局部定义名称,如Range(B2:LastCell),其中LastCell为已定义的单元格区域名称。参数Cell2是可选的,区域

3、左上角和右下角的单元格。运行RangeSelect过程,选中A3:F6,B1:C5单元格区域。001-2 使用Cells属性使用Cells属性返回一个Range对象,如下面的代码所示。 Sub Cell() Dim icell As Integer For icell = 1 To 100 Sheet2.Cells(icell,1).Value = icell Next End Sub代码解析:Cell过程使用For.Next语句为工作表中的A1:A100单元格区域填入序号。Cells属性指定单元格区域中的单元格,语法如下:Cells(RowIndex,ColumnIndex)参数RowInd

4、ex是可选的,表示引用区域中的行序号。参数ColumnIndex是可选的,表示引用区域中的列序号。如果缺省参数,Cells属性返回引用对象的所有单元格。Cells属性的参数可以使用变量,因此经常应用于在单元格区域中循环。001-3 使用快捷记号在VBA中可以将A1引用样式或命名区域名称使用方括号括起来,作为Range属性的快捷方式,这样就不必键入单词“Range”或使用引号,如下面的代码所示。 Sub Fastmark() A1:A5 = 2 Fast = 4 End Sub代码解析:Fastmark过程使用快捷记号为单元格区域赋值。第2行代码使用快捷记号将活动工作表中的A1:A5单元格赋值为

5、2。第3行代码将工作簿中已命名为“Fast”的单元格区域赋值为4。注意 使用快捷记号引用单元格区域时只能使用固定字符串而不能使用变量。001-4 使用Offset属性可以使用Range对象的Offset属性返回一个基于引用的Range对象的单元格区域,如下面的代码所示。 Sub Offset() Sheet3.Range(A1:C3).Offset(3,3).Select End Sub代码解析:Offset过程使用Range对象的Offset属性选中A1:A3单元格偏移三行三列后的区域。应用于Range对象的Offset 属性的语法如下:expression.Offset(RowOffset

6、,ColumnOffset)参数expression是必需的,该表达式返回一个Range对象。参数RowOffset是可选的,区域偏移的行数(正值、负值或 0(零)。正值表示向下偏移,负值表示向上偏移,默认值为 0。参数ColumnOffset是可选的,区域偏移的列数(正值、负值或 0(零)。正值表示向右偏移,负值表示向左偏移,默认值为 0。运行Offset过程,选中A1:A3单元格偏称三行三列后的区域。001-5 使用Resize属性使用Range对象的Resize属性调整指定区域的大小,并返回调整大小后的单元格区域,如下面的代码所示。 Sub Resize() Sheet4.Range(A

7、1).Resize(3,3).Select End Sub代码解析:Resize过程使用Range对象的Resize属性选中A1单元格扩展为三行三列后的区域。Resize属性的语法如下:expression.Resize(RowSize,ColumnSize)参数expression是必需的,返回要调整大小的Range 对象参数RowSize是可选的,新区域中的行数。如果省略该参数,则该区域中的行数保持不变。参数ColumnSize是可选的,新区域中的列数。如果省略该参数。则该区域中的列数保持不变。运行Resize过程,选中A1单元格扩展为三行三列后的区域。001-6 使用Union方法使用U

8、nion方法可以将多个非连续区域连接起来成为一个区域,从而可以实现对多个非连续区域一起进行操作,如下面的代码所示。 Sub UnSelect() Union(Sheet5.Range(A1:D4),Sheet5.Range(E5:H8).Select End Sub代码解析:UnSelect过程选择单元格A1:D4和E5:H8所组成的区域。Union方法返回两个或多个区域的合并区域,语法如下:expression.Union(Arg1,Arg2,.)其中参数expression是可选的,返回一个Application对象。参数Arg1,Arg2,.是必需的,至少指定两个Range对象。运行Un

9、Select过程,选中单元格A1:D4和E5:H8所组成的区域。001-7 使用UsedRange属性使用UsedRange属性返回指定工作表上已使用单元格组成的区域,如下面的代码所示。 Sub UseSelect() Sheet6.UsedRange.Select End Sub代码解析:UseSelect过程使用UsedRange属性选择工作表上已使用单元格组成的区域,包括空单元格。如工作表中已使用A1单元格和D8单元格,运行UseSelect过程将选择A1到D8单元格区域。001-8 使用CurrentRegion属性使用CurrentRegion属性返回指定工作表上当前的区域,如下面的

10、代码所示。 Sub CurrentSelect() Sheet7.Range(A5).CurrentRegion.Select End Sub代码解析:CurrentSelect过程使用CurrentRegion属性选择工作表上A5单元格当前的区域,当前区域是一个边缘是任意空行和空列组合成的范围。运行CurrentSelect过程将选择A5到B6单元格区域。002 选定单元格区域的方法002-1 使用Select方法在VBA中一般使用Select方法选定单元格或单元格区域,如下面的代码所示。 Sub RngSelect() Sheet3.Activate Sheet3.Range(A1:B10

11、).Select End Sub代码解析:RngSelect过程使用Select方法选定Sheet3中的A1:B10单元格区域,Select方法应用于Range对象时语法如下:expression.Select(Replace)参数expression是必需的,一个有效的对象。参数Replace是可选的,要替换的对象。使用Select方法选定单元格时,单元格所在的工作表必需为活动工作表,所以先使用Activate方法使Sheet3成为活动工作表,否则Select方法有可能出错,显示错误提示。002-2 使用Activate方法还可以使用Activate方法选定单元格或单元格区域,如下面的代码所

12、示。 Sub RngActivate() Sheet3.Activate Sheet3.Range(A1:B10).Activate End Sub代码解析:RngActivate过程使用Activate方法选定Sheet3中的A1:B10单元格区域,Activate方法应用于Range对象时语法如下:expression.Activate使用Activate方法选定单元格时,单元格所在的工作表也必需为活动工作表,否则Activate方法有可能出错,显示错误提示。002-3 使用Goto方法使用Goto方法无需使单元格所在的工作表成为活动工作表,如下面的代码所示。 Sub RngGoto()

13、Application.Goto Reference:=Sheet3.Range(A1:B10),scroll:=True End Sub代码解析:RngGoto过程使用Goto方法选定Sheet3中的A1:B10单元格区域,并滚动工作表以显示该单元格。Goto方法选定任意工作簿中的任意区域或任意Visual Basic过程,并且如果该工作簿未处于活动状态,就激活该工作簿,语法如下:expression.Goto(Reference,Scroll)参数expression是必需的,返回一个Application 对象。参数Reference是可选的,Variant类型,指定目标。可以是Rang

14、e对象、包含R1C1-样式记号的单元格引用的字符串或包含 Visual Basic 过程名的字符串。如果省略本参数,目标将是最近一次用Goto方法选定的区域。参数Scroll是可选的,Variant类型,如果该值为True,则滚动窗口直至目标区域的左上角单元格出现在窗口的左上角。如果该值为False,则不滚动窗口。默认值为False。003 获得指定行、列中的最后一个非空单元格使用VBA对工作表进行操作时,经常需要定位到指定行或列中最后一个非空单元格,此时可以使用Range对象的End属性,在取得单元格对象后便能获得该单元格的相关属性,如单元格地址、行列号、数值等,如下面的代码所示。 Sub LastRow() Dim rng As Range Set rng = Sheet1.Range(A65536).End(xlUp) MsgBox A列中最后一个非空单元格是 & rng.Address(0,0) _ & ,行号 & rng.Row & ,数值 & rng.Value Set rng = Nothing End Sub代码解析:LastRow过程使用消息框显示工作表中A列最后非空单元格的地址、行号和数值。End属性返回一个Range对象,该对象代表包含源区域的区域尾端的单元格。等同于按键、或,语法如下:expression.En

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 办公文档 > 教学/培训

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号