ExcelHome技术论坛

 找回密码
 免费注册

QQ登录

只需一步,快速开始

快捷登录

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

VBA常用技巧代码解析

    [复制链接]

TA的精华主题

TA的得分主题

发表于 2009-2-12 23:27 | 显示全部楼层
[广告] VBA代码宝 - VBA编程加强工具 · VBA代码随查随用  · 内置多项VBA编程加强工具       ★ 免费下载 ★      ★使用手册
本帖已被收录到知识树中,索引项:开发帮助和教程
yuan版您好,我在学习的过程中发现----[技巧6 替换单元格内字符串]
这个附件中的示例没有实现替换后的效果,也没有出现替换过程的那一瞬间,
请您确认.盼复

哦,看了楼下版主的解释我明白了,还以为这是版本的问题呢,因为我在2007当中打开的
多谢

[ 本帖最后由 一_一 于 2009-2-13 14:31 编辑 ]

TA的精华主题

TA的得分主题

 楼主| 发表于 2009-2-13 00:14 | 显示全部楼层
原帖由 一_一 于 2009-2-12 23:27 发表
yuan版您好,我在学习的过程中发现----[技巧6 替换单元格内字符串]
这个附件中的示例没有实现替换后的效果,也没有出现替换过程的那一瞬间,
请您确认.盼复

不错,原来的附件只能替换一次,第2次就看不出效果了,我把附件修改了下,可以互相替换。

技巧6 替换单元格内字符串.rar

7.11 KB, 下载次数: 5003

TA的精华主题

TA的得分主题

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

第2部分Worksheet(工作表)对象

技巧21         引用工作表的方式
       VBA中,在不同的工作表之间转换或者对不同工作表中的单元格区域进行操作时,需要指定引用的工作表,通常有下面几种方法:
21-1        使用工作表的名称
       工作表名称是指显示在工作表标签中的文本,工作表名称可以使用WorkSheets集合和Sheets集合两种引用方式,如下面的代码所示。
  1. #001  Sub ShActivate()
  2. #002      Worksheets("索引号").Activate
  3. #003      'Sheets("索引号").Activate
  4. #004  End Sub
复制代码
第3、4行代码都激活工作簿中名称为“索引号”的工作表,激活后“索引号”工作表将成为活动工作表。
       WorkSheets集合包含所有的工作表,而Sheets集合不仅包含工作表集合WorkSheets,还包含图表集合Charts、宏表集合Excel4MacroSheets与MS Excel 5.0对话框集合DialogSheets等。
       任何时刻工作簿中只有一个工作表是活动工作表。
21-2        使用工作表的索引号
       工作表索引号是指工作表在工作簿中的位置,Excel根据工作表在工作表标签中的位置以1开始从左向右进行编号。下面的代码选中并激活当前工作簿中第1个工作表:
  1. #001  Sub ShIndex()
  2. #002      Worksheets(1).Select
  3. #003  End Sub
复制代码
单个WorkSheet对象的Select方法与Activate方法的主要区别在于Select方法要求工作表可视。
注意 当工作簿包括工作表、宏表、图表等时,使用索引号引用工作表如Sheets(1)与WorkSheets(1)引用的可能不是同一个表。
21-3        使用工作表的代码名称
       使用Worksheet对象的CodeName属性可以返回工作表的代码名称,如下面的代码所示。
  1. #001  Sub ShCodeName()
  2. #002      MsgBox Sheets(1).CodeName
  3. #003  End Sub
复制代码
工作表的代码名称显示在VBE工程资源管理器窗口中,在属性窗口中能够修改工作表代码名称,如图所示。在VBA中能够直接使用工作表的代码名称引用工作表,即使工作表的名称被修改,代码仍然能够正常运行。
工作表的代码名称.jpg
21-4        使用ActiveSheet属性引用活动工作表
       使用ActiveSheet属性可以返回活动工作表,如下面的代码所示。
  1. #001  Sub ShActive()
  2. #002      MsgBox ActiveSheet.Name
  3. #003  End Sub
复制代码
ActiveSheet属性应用于AppActivate对象、Window对象和Workbook对象时,如果未给出对象识别符,返回活动工作簿中的活动工作表。

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

技巧21 引用工作表的方式.rar

7 KB, 下载次数: 4470

评分

1

查看全部评分

TA的精华主题

TA的得分主题

发表于 2009-2-13 09:59 | 显示全部楼层

TA的精华主题

TA的得分主题

发表于 2009-2-13 14:27 | 显示全部楼层
相当不错的讲解,十分感谢,版猪辛苦,有心人哇!

TA的精华主题

TA的得分主题

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

TA的精华主题

TA的得分主题

发表于 2009-2-13 20:13 | 显示全部楼层
[广告] VBA代码宝 - VBA编程加强工具 · VBA代码随查随用  · 内置多项VBA编程加强工具       ★ 免费下载 ★      ★使用手册
感谢楼主无私的奉献!我们这些菜鸟定当努力学习!

TA的精华主题

TA的得分主题

发表于 2009-2-13 20:49 | 显示全部楼层
真是太好了,省了不少事!

TA的精华主题

TA的得分主题

发表于 2009-2-13 21:10 | 显示全部楼层
[广告] VBA代码宝 - VBA编程加强工具 · VBA代码随查随用  · 内置多项VBA编程加强工具       ★ 免费下载 ★      ★使用手册
谢谢yuanzhuping 版主,都收藏了。 刚接触VBA,留着慢慢啃吧。

TA的精华主题

TA的得分主题

 楼主| 发表于 2009-2-14 01:08 | 显示全部楼层

第2部分Worksheet(工作表)对象

技巧22         选择工作表的方法
       在VBA中需要激活或者选择某个工作表时使用Select方法或Activate方法,如下面的代码所示。
  1. #001  Sub SelectSh()
  2. #002      Worksheets("Sheet2").Select
  3. #003  End Sub
  4. #004  Sub ActivateSh()
  5. #005      Worksheets("Sheet2").Activate
  6. #006  End Sub
复制代码
代码解析:
       SelectSh过程使用Select方法选择“Sheet2”工作表,而ActivateSh过程则使用Activate方法选择“Sheet2”工作表,从表面看两者的作用是相同的,但是如果“Sheet2”工作表是隐藏的,Activate方法可以正常运行,而Select方法将会出现错误,如图所示。
Snap1.jpg
       如果需要同时选中工作簿中的所有工作表,则只能使用Select方法而不能使用Activate方法,如下面的代码所示。
  1. #001  Sub SelectShs()
  2. #002      Dim Shs As Worksheet
  3. #003      For Each Shs In Worksheets
  4. #004          Shs.Select False
  5. #005      Next
  6. #006  End Sub
  7. #007  Sub SelectSheets()
  8. #008      Worksheets.Select
  9. #009  End Sub
  10. #010  Sub ArraySheets()
  11. #011      Worksheets(Array(1, 2, 3)).Select
  12. #012  End Sub
复制代码
代码解析:
    SelectShs过程遍历工作表并使用带参数的Select方法选中所有工作表。应用于Worksheet对象的Select方法的语法如下:
Select(Replace)
       参数Replace是可选的。如果该值为True,则用指定对象替代当前选定对象。如果该值为False,则延伸当前选定对象以包括任何以前选定的对象。
       SelectSheets过程使用Worksheets集合的Select方法选中集合中所有的对象。
       ArraySheets过程使用Array 函数返回工作簿中的前三张工作表并使用Worksheets集合的Select方法选中前三张工作表。

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

技巧22 选择工作表的方法.rar

7.68 KB, 下载次数: 3351

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

本版积分规则

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

GMT+8, 2024-11-21 19:09 , Processed in 0.046478 second(s), 7 queries , Gzip On, MemCache On.

Powered by Discuz! X3.4

© 1999-2023 Wooffice Inc.

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

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

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