文档详情

4605008798VBA常用代码解析

鲁**
实名认证
店铺
DOC
1.88MB
约215页
文档ID:432375728
4605008798VBA常用代码解析_第1页
1/215

EXCEL VBA常用代码解析Range对象是Excel应用程序中最常用的对象,一个Range对象代表一个单元格、一行、一列、包含一个或者更多单元格区域(可以是连续的单元格,也可以是不连续的单元格)中选定的单元格,甚至是多个工作表上的一组单元格,在操作Excel 内的任何区域之前都需要将其表示为一个Range对象,然后使用该Range对象的方法和属性▲001 单元格的引用方法在VBA中经常需要引用单元格或单元格区域区域,主要有以下几种方法001-1 使用Range属性VBA中可以使用Range属性返回单元格或单元格区域,如下面的代码所示 Sub RngSelect() Sheet1.Range("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是可选的,区域左上角和右下角的单元格运行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)参数RowIndex是可选的,表示引用区域中的行序号参数ColumnIndex是可选的,表示引用区域中的列序号如果缺省参数,Cells属性返回引用对象的所有单元格Cells属性的参数可以使用变量,因此经常应用于在单元格区域中循环。

001-3 使用快捷记号在VBA中可以将A1引用样式或命名区域名称使用方括号括起来,作为Range属性的快捷方式,这样就不必键入单词“Range”或使用引号,如下面的代码所示 Sub Fastmark() [A1:A5] = 2 [Fast] = 4 End Sub代码解析:Fastmark过程使用快捷记号为单元格区域赋值第2行代码使用快捷记号将活动工作表中的A1:A5单元格赋值为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,ColumnOffset)参数expression是必需的,该表达式返回一个Range对象。

参数RowOffset是可选的,区域偏移的行数(正值、负值或 0(零))正值表示向下偏移,负值表示向上偏移,默认值为 0参数ColumnOffset是可选的,区域偏移的列数(正值、负值或 0(零))正值表示向右偏移,负值表示向左偏移,默认值为 0运行Offset过程,选中A1:A3单元格偏称三行三列后的区域001-5 使用Resize属性使用Range对象的Resize属性调整指定区域的大小,并返回调整大小后的单元格区域,如下面的代码所示 Sub Resize() Sheet4.Range("A1").Resize(3,3).Select End Sub代码解析:Resize过程使用Range对象的Resize属性选中A1单元格扩展为三行三列后的区域Resize属性的语法如下:expression.Resize(RowSize,ColumnSize)参数expression是必需的,返回要调整大小的Range 对象参数RowSize是可选的,新区域中的行数如果省略该参数,则该区域中的行数保持不变参数ColumnSize是可选的,新区域中的列数如果省略该参数则该区域中的列数保持不变。

运行Resize过程,选中A1单元格扩展为三行三列后的区域001-6 使用Union方法使用Union方法可以将多个非连续区域连接起来成为一个区域,从而可以实现对多个非连续区域一起进行操作,如下面的代码所示 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对象运行UnSelect过程,选中单元格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属性返回指定工作表上当前的区域,如下面的代码所示 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").Select End Sub代码解析:RngSelect过程使用Select方法选定Sheet3中的A1:B10单元格区域,Select方法应用于Range对象时语法如下:expression.Select(Replace)参数expression是必需的,一个有效的对象。

参数Replace是可选的,要替换的对象使用Select方法选定单元格时,单元格所在的工作表必需为活动工作表,所以先使用Activate方法使Sheet3成为活动工作表,否则Select方法有可能出错,显示错误提示002-2 使用Activate方法还可以使用Activate方法选定单元格或单元格区域,如下面的代码所示 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() 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类型,指定目标可以是Range对象、包含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.End(。

下载提示
相似文档
正为您匹配相似的精品文档