ExcelHome技术论坛

 找回密码
 免费注册

QQ登录

只需一步,快速开始

快捷登录

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

VBA常用技巧代码解析

    [复制链接]

TA的精华主题

TA的得分主题

发表于 2009-3-23 23:11 | 显示全部楼层
本帖已被收录到知识树中,索引项:开发帮助和教程
非常感谢版主的辛苦劳动。

TA的精华主题

TA的得分主题

发表于 2009-3-24 06:15 | 显示全部楼层
Thanks for your diligent work

TA的精华主题

TA的得分主题

发表于 2009-3-24 08:41 | 显示全部楼层
太感谢楼主了,不光有实例,还有非常详尽的说明,另外能耐心的整理这些资料,真的是非常不容易..

TA的精华主题

TA的得分主题

发表于 2009-3-24 08:55 | 显示全部楼层

关于进度条宏代码与执行的宏同步事宜

袁版主:您好!再次麻烦您。通常相关资料制作的进度条都是他们自己举的例子进行运算,来测试进度条的进度。现在请问实际要运行的代码怎样与进度条同步呀?谢谢!下面是测试的进度条代码与本人需要运行的工资条的宏,怎样才能在运行工资条的宏时与进度条同步?
Public Sub Macro_1()
Total = 123
With UserForm1
.Show 0
For i = 1 To Total
.Label3.Width = Int(i / Total * 285)
.Label4.Caption = CStr(Int(i / Total * 100)) + "%"
DoEvents
Next i
End With
Unload UserForm1
End Sub

下面是要执行的工资条之宏
Sub 工资条()
Dim a, b As Integer
If Range("a9") <> Range("a3") Then   
a = Range("a65536").End(xlUp).Row   
For b = a To 8 Step -1              
Rows(b & ":" & b + 4).Insert     
Rows("3:6").Copy              
Rows(b + 1 & ":" & b + 4).Select      ActiveSheet.Paste              
Rows(b).RowHeight = 7.5         
Next
End If
Range("a1").Select
End Sub

现想在运行Sub 工资条()此过程时,与上面的进度条同步。本人将Sub 工资条()过程放到进度条代码中却不是同步的。烦请袁版主帮忙,再次谢谢!
Public Sub Macro_1()
Total = 123
With UserForm1
.Show 0
For i = 1 To Total
.Label3.Width = Int(i / Total * 285)
.Label4.Caption = CStr(Int(i / Total * 100)) + "%"
DoEvents
Next i
End With
Dim a, b As Integer
If Range("a9") <> Range("a3") Then   
a = Range("a65536").End(xlUp).Row   
For b = a To 8 Step -1            
Rows(b & ":" & b + 4).Insert   
Rows("3:6").Copy              
Rows(b + 1 & ":" & b + 4).Select      ActiveSheet.Paste            
Rows(b).RowHeight = 7.5         
Next
End If
Range("a1").Select
Unload UserForm1
End Sub
制作的进度条.gif

TA的精华主题

TA的得分主题

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

询问

袁版主:您好!您编写的这些代码技巧都是适用03版的EXCEL,好像有些对07版的不适用耶???

TA的精华主题

TA的得分主题

发表于 2009-3-24 12:18 | 显示全部楼层
  楼主实在是太好了,我说跟你混了,学VBA全靠你了!

TA的精华主题

TA的得分主题

发表于 2009-3-24 12:46 | 显示全部楼层
我可以少买一本书了.在这里来学习.

TA的精华主题

TA的得分主题

发表于 2009-3-24 13:05 | 显示全部楼层
版主太厉害了,精神太可嘉了,真的是不回帖都对不起了,这么好的贴,一定要定起来。太谢谢版主了。

TA的精华主题

TA的得分主题

 楼主| 发表于 2009-3-24 17:00 | 显示全部楼层

第7部分 菜单和工具栏

技巧96         屏蔽所有的命令栏
       在使用自定义的操作界面时,需要屏蔽Excel中所有的命令栏,可以使用下面的代码。
  1. #001  Sub Shielding_1()
  2. #002      Dim i As Integer
  3. #003      For i = 1 To Application.CommandBars.Count
  4. #004          Application.CommandBars(i).Enabled = False
  5. #005      Next
  6. #006  End Sub
复制代码
代码解析:
       Shielding_1过程使用For...Next语句遍历Excel命令栏,并将其Enabled属性设置为False,使之无效。
       还可以使用For Each...Next 语句遍历所有的CommandBars对象,代码如下:
  1. #001  Sub Shielding_2()
  2. #002      Dim Cmd As CommandBar
  3. #003      For Each Cmd In Application.CommandBars
  4. #004          Cmd.Enabled = False
  5. #005      Next
  6. #006  End Sub
复制代码
运行Shielding_1或Shielding_2过程工作簿如图所示。
Snap5.jpg
       在需要恢复时只需将Enabled属性设置为True即可,如下面的代码所示。
  1. #001  Sub Recovery_1()
  2. #002      Dim i As Integer
  3. #003      For i = 1 To Application.CommandBars.Count
  4. #004          Application.CommandBars(i).Enabled = True
  5. #005      Next
  6. #006  End Sub
  7. #007  Sub Recover_2()
  8. #008      Dim Cmd As CommandBar
  9. #009      For Each Cmd In Application.CommandBars
  10. #010          Cmd.Enabled = True
  11. #011      Next
  12. #012  End Sub
复制代码
代码解析:
       Recovery_1和Recover_2过程分别使用For...Next语句和For Each...Next 语句遍历所有的CommandBars对象,设置其Enabled属性为True,显示所有的命令栏。

技巧96 屏蔽所有的命令栏.rar

7.3 KB, 下载次数: 1151

TA的精华主题

TA的得分主题

 楼主| 发表于 2009-3-24 17:19 | 显示全部楼层

第7部分 菜单和工具栏

技巧97         恢复Excel的命令栏
       如果用户经常添加、删除Excel的菜单和工具栏而又没有及时恢复的话,有时会破坏Excel默认的用户界面,即使用Reset方法也不能恢复成初始状态。
       此时可以在电脑的本地硬盘中查找扩展名为*.xlb的文件,该文件在电脑中的位置会因Excel版本的不同而不同,在XP操作系统中,该文件位于系统盘的Documents and Settings\Administrator\Application Data\Microsoft\Excel文件夹,其中Administrator是电脑的用户名。找到它最简单的方法是使用Windows的搜索功能。按<Win+F>组合键调出Windows的搜索窗口,然后用*.xlb为目标在本地硬盘中进行搜索,如图所示。
Snap7.jpg
       如果搜索没有结果,请检查“更多高级选项”中是否选中“搜索隐藏的文件和文件夹”选项,如图所示。
Snap8.jpg
       对Excel用户界面的任何修改都会保存在*.xlb文件中,找到后删除该文件,然后重新启动Excel。Excel会重新创建一个*.xlb文件,而菜单和工具栏也会全部恢复成初始状态。
您需要登录后才可以回帖 登录 | 免费注册

本版积分规则

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

GMT+8, 2024-11-15 07:27 , Processed in 0.054814 second(s), 7 queries , Gzip On, MemCache On.

Powered by Discuz! X3.4

© 1999-2023 Wooffice Inc.

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

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

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