ExcelHome技术论坛

 找回密码
 免费注册

QQ登录

只需一步,快速开始

快捷登录

搜索
EH技术汇-专业的职场技能充电站 妙哉!函数段子手趣味讲函数 Excel服务器-会Excel,做管理系统 效率神器,一键搞定繁琐工作
HR薪酬管理数字化实战 Excel 2021函数公式学习大典 Excel数据透视表实战秘技 打造核心竞争力的职场宝典
让更多数据处理,一键完成 数据工作者的案头书 免费直播课集锦 ExcelHome出品 - VBA代码宝免费下载
用ChatGPT与VBA一键搞定Excel WPS表格从入门到精通 Excel VBA经典代码实践指南
楼主: yuanzhuping

VBA常用技巧代码解析

    [复制链接]

TA的精华主题

TA的得分主题

 楼主| 发表于 2009-2-9 23:14 | 显示全部楼层
[广告] VBA代码宝 - VBA编程加强工具 · VBA代码随查随用  · 内置多项VBA编程加强工具       ★ 免费下载 ★      ★使用手册

第1部分Range(单元格)对象

本帖已被收录到知识树中,索引项:开发帮助和教程
技巧1         单元格的引用方法
1-2        使用Cells属性
      使用Cells属性返回一个Range对象,如下面的代码所示。
  1. #001  Sub Cell()
  2. #002      Dim icell As Integer
  3. #003      For icell = 1 To 100
  4. #004          Sheet2.Cells(icell, 1).Value = icell
  5. #005      Next
  6. #006  End Sub
复制代码
代码解析:
       Cell过程使用For...Next语句为工作表中的A1:A100单元格区域填入序号。
       Cells属性指定单元格区域中的单元格,语法如下:
Cells(RowIndex, ColumnIndex)
       参数RowIndex是可选的,表示引用区域中的行序号。
       参数ColumnIndex是可选的,表示引用区域中的列序号。
       如果缺省参数,Cells属性返回引用对象的所有单元格。
       Cells属性的参数可以使用变量,因此经常应用于在单元格区域中循环。
1-3        使用快捷记号
         在VBA中可以将A1引用样式或命名区域名称使用方括号括起来,作为Range属性的快捷方式,这样就不必键入单词“Range”或使用引号,如下面的代码所示。
  1. #001  Sub Fastmark()
  2. #002      [A1:A5] = 2
  3. #003      [Fast] = 4
  4. #004  End Sub
复制代码
代码解析:
       Fastmark过程使用快捷记号为单元格区域赋值。
       第2行代码使用快捷记号将活动工作表中的A1:A5单元格赋值为2。
       第3行代码将工作簿中已命名为“Fast”的单元格区域赋值为4。
注意 使用快捷记号引用单元格区域时只能使用固定字符串而不能使用变量。

[ 本帖最后由 yuanzhuping 于 2009-2-16 22:52 编辑 ]

点评

原来[A1:A5] 这个称为快捷记号,学习!  发表于 2011-10-13 19:21

评分

3

查看全部评分

TA的精华主题

TA的得分主题

 楼主| 发表于 2009-2-9 23:19 | 显示全部楼层

第1部分Range(单元格)对象

技巧1         单元格的引用方法
1-4        使用Offset属性
       可以使用Range对象的Offset属性返回一个基于引用的Range对象的单元格区域,如下面的代码所示。
  1. #001  Sub Offset()
  2. #002      Sheet3.Range("A1:C3").Offset(3, 3).Select
  3. #003  End Sub
复制代码
代码解析:
       Offset过程使用Range对象的Offset属性选中A1:A3单元格偏移三行三列后的区域。
       应用于Range对象的Offset 属性的语法如下:
expression.Offset(RowOffset, ColumnOffset)
       参数expression是必需的,该表达式返回一个Range对象。
       参数RowOffset是可选的,区域偏移的行数(正值、负值或 0(零))。正值表示向下偏移,负值表示向上偏移,默认值为 0。
       参数ColumnOffset是可选的,区域偏移的列数(正值、负值或 0(零))。正值表示向右偏移,负值表示向左偏移,默认值为 0。
       运行Offset过程,选中A1:A3单元格偏称三行三列后的区域,如图所示。
使用Range对象的Offset属性.jpg

[ 本帖最后由 yuanzhuping 于 2009-2-16 22:53 编辑 ]

评分

1

查看全部评分

TA的精华主题

TA的得分主题

 楼主| 发表于 2009-2-9 23:24 | 显示全部楼层
[广告] VBA代码宝 - VBA编程加强工具 · VBA代码随查随用  · 内置多项VBA编程加强工具       ★ 免费下载 ★      ★使用手册

第1部分Range(单元格)对象

技巧1         单元格的引用方法
1-5        使用Resize属性
       使用Range对象的Resize属性调整指定区域的大小,并返回调整大小后的单元格区域,如下面的代码所示。
  1. #001  Sub Resize()
  2. #002      Sheet4.Range("A1").Resize(3, 3).Select
  3. #003  End Sub
复制代码
代码解析:
       Resize过程使用Range对象的Resize属性选中A1单元格扩展为三行三列后的区域。
       Resize属性的语法如下:
expression.Resize(RowSize, ColumnSize)
       参数expression是必需的,返回要调整大小的Range 对象
       参数RowSize是可选的,新区域中的行数。如果省略该参数,则该区域中的行数保持不变。
       参数ColumnSize是可选的,新区域中的列数。如果省略该参数。则该区域中的列数保持不变。
       运行Resize过程,选中A1单元格扩展为三行三列后的区域,如图所示。
使用Resize属性调整区域大小.jpg

[ 本帖最后由 yuanzhuping 于 2009-2-16 22:53 编辑 ]

TA的精华主题

TA的得分主题

 楼主| 发表于 2009-2-9 23:31 | 显示全部楼层

第1部分Range(单元格)对象

技巧1         单元格的引用方法
1-6        使用Union方法
       使用Union方法可以将多个非连续区域连接起来成为一个区域,从而可以实现对多个非连续区域一起进行操作,如下面的代码所示。
  1. #001  Sub UnSelect()
  2. #002      Union(Sheet5.Range("A1:D4"), Sheet5.Range("E5:H8")).Select
  3. #003  End Sub
复制代码
代码解析:
       UnSelect过程选择单元格A1:D4和E5:H8所组成的区域。Union方法返回两个或多个区域的合并区域,语法如下:
expression.Union(Arg1, Arg2, ...)
       其中参数expression是可选的,返回一个Application对象。
       参数Arg1, Arg2, ...是必需的,至少指定两个Range对象。
       运行UnSelect过程,选中单元格A1:D4和E5:H8所组成的区域,如图所示。
使用Union方法将多个非连续区域连接成一个区域.jpg

[ 本帖最后由 yuanzhuping 于 2009-2-16 22:54 编辑 ]

TA的精华主题

TA的得分主题

 楼主| 发表于 2009-2-9 23:35 | 显示全部楼层

第1部分Range(单元格)对象

技巧1         单元格的引用方法
1-7        使用UsedRange属性
       使用UsedRange属性返回指定工作表上已使用单元格组成的区域,如下面的代码所示。
  1. #001  Sub UseSelect()
  2. #002     Sheet6.UsedRange.Select
  3. #003  End Su
复制代码
代码解析:
       UseSelect过程使用UsedRange属性选择工作表上已使用单元格组成的区域,包括空单元格。如工作表中已使用A1单元格和D8单元格,运行UseSelect过程将选择A1到D8单元格区域,如图所示。
使用UsedRange属性选择已使用区域.jpg

[ 本帖最后由 yuanzhuping 于 2009-2-16 22:54 编辑 ]

点评

原来还包括空单元格,学习!  发表于 2011-10-13 19:24

评分

6

查看全部评分

TA的精华主题

TA的得分主题

 楼主| 发表于 2009-2-9 23:37 | 显示全部楼层

第1部分Range(单元格)对象

技巧1         单元格的引用方法
1-8        使用CurrentRegion属性
       使用CurrentRegion属性返回指定工作表上当前的区域,如下面的代码所示。
  1. #001  Sub CurrentSelect()
  2. #002      Sheet7.Range("A5").CurrentRegion.Select
  3. #003  End Sub
复制代码
代码解析:
       CurrentSelect过程使用CurrentRegion属性选择工作表上A5单元格当前的区域,当前区域是一个边缘是任意空行和空列组合成的范围。
       运行CurrentSelect过程将选择A5到B6单元格区域,如图所示。
CurrentRegion属性选择当前的区域.jpg

[ 本帖最后由 yuanzhuping 于 2009-2-16 22:55 编辑 ]

TA的精华主题

TA的得分主题

 楼主| 发表于 2009-2-9 23:44 | 显示全部楼层

第1部分Range(单元格)对象

本帖最后由 ExcelHome 于 2012-10-6 15:38 编辑

技巧1 单元格的引用方法附件。

技巧1 单元格的引用方法.rar

9.65 KB, 下载次数: 7692

TA的精华主题

TA的得分主题

 楼主| 发表于 2009-2-10 07:36 | 显示全部楼层
[广告] Excel易用宝 - 提升Excel的操作效率 · Excel / WPS表格插件       ★免费下载 ★       ★ 使用帮助

第1部分Range(单元格)对象

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

[ 本帖最后由 yuanzhuping 于 2009-2-16 22:56 编辑 ]

TA的精华主题

TA的得分主题

 楼主| 发表于 2009-2-10 07:42 | 显示全部楼层

第1部分Range(单元格)对象

技巧2         选定单元格区域的方法
2-2        使用Activate方法
       还可以使用Activate方法选定单元格或单元格区域,如下面的代码所示。
  1. #001  Sub RngActivate()
  2. #002      Sheet3.Activate
  3. #003      Sheet3.Range("A1:B10").Activate
  4. #004  End Sub
复制代码
代码解析:
       RngActivate过程使用Activate方法选定Sheet3中的A1:B10单元格区域,Activate方法应用于Range对象时语法如下:
expression.Activate
       使用Activate方法选定单元格时,单元格所在的工作表也必需为活动工作表,否则Activate方法有可能出错,显示如图所示的错误提示。
Activate方法无效提示.jpg

[ 本帖最后由 yuanzhuping 于 2009-2-16 22:56 编辑 ]

TA的精华主题

TA的得分主题

 楼主| 发表于 2009-2-10 07:45 | 显示全部楼层

第1部分Range(单元格)对象

技巧2         选定单元格区域的方法
2-3        使用Goto方法
       使用Goto方法无需使单元格所在的工作表成为活动工作表,如下面的代码所示。
  1. #001  Sub RngGoto()
  2. #002      Application.Goto Reference:=Sheet3.Range("A1:B10"), scroll:=True
  3. #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。

[ 本帖最后由 yuanzhuping 于 2009-2-16 22:57 编辑 ]

技巧2 选定单元格区域的方法.rar

6.9 KB, 下载次数: 5303

点评

原来选择单元格区域不止select一种方法,学习了!  发表于 2011-10-13 19:10

评分

1

查看全部评分

您需要登录后才可以回帖 登录 | 免费注册

本版积分规则

手机版|关于我们|联系我们|ExcelHome

GMT+8, 2024-11-21 16:59 , Processed in 0.040111 second(s), 6 queries , Gzip On, MemCache On.

Powered by Discuz! X3.4

© 1999-2023 Wooffice Inc.

沪公网安备 31011702000001号 沪ICP备11019229号-2

本论坛言论纯属发表者个人意见,任何违反国家相关法律的言论,本站将协助国家相关部门追究发言者责任!     本站特聘法律顾问:李志群律师

快速回复 返回顶部 返回列表