为了正常的体验网站,请在浏览器设置里面开启Javascript功能!

VBA程序也玩自动升级

2010-08-06 2页 doc 37KB 130阅读

用户头像

is_860492

暂无简介

举报
VBA程序也玩自动升级VBA程序也玩自动升级 最近用VBA帮公司其他部门的同事写了一个数据管理的小工具,让他们以前每天要花1、2个钟头处理的工作现在10几分钟就搞定,还不容易出错,博得不少喝彩 INCLUDEPICTURE "http://club.excelhome.net/images/smilies/default/lol.gif" \* MERGEFORMATINET 终于,这些个家伙们提出越来越多新的要求,一会要求导出的报表增加这个项目,一会要求增加那个功能。倒是难不倒咱,很快修改了窗体代码,然而他们却连导入窗体都不会操作,...
VBA程序也玩自动升级
VBA程序也玩自动升级 最近用VBA帮公司其他部门的同事写了一个数据管理的小工具,让他们以前每天要花1、2个钟头处理的工作现在10几分钟就搞定,还不容易出错,博得不少喝彩 INCLUDEPICTURE "http://club.excelhome.net/images/smilies/default/lol.gif" \* MERGEFORMATINET 终于,这些个家伙们提出越来越多新的要求,一会要求导出的报表增加这个项目,一会要求增加那个功能。倒是难不倒咱,很快修改了窗体代码,然而他们却连导入窗体都不会操作,还得跑到他们电脑前去(办公室可不在一起呀 )一次两次就算了,可却经常发生,又不好意思拒绝 几经尝试,终于找到了一个解决办法: 为了好看,也为了防止误操作,所有他们可见的界面都是窗体,每次要求修改的东西也都是通过修改窗体代码完成的,那么,在工具上加上个自动升级功能,每次我写好新窗体后,导出到共享盘上,文件自动查找有没有新窗体文件存在,有,则先删除原来的窗体,再导入新窗体(要求同名),不就搞定了吗? 不多说了,上代码: Sub 升级() Application.ScreenUpdating = False On Error Resume Next   Dim pw$ '因为要用代码操作窗体需要先解开VBA密码(无密码就不用了),先解开:   pw = "1234" 'VBA工程密码   If ThisWorkbook.VBProject.Protection = vbext_pp_locked Then     Application.VBE.CommandBars(1).Controls("工具(T)").Controls("VBAProject 属性(&E)...").Execute     Application.SendKeys pw & "{ENTER}{ENTER}"     DoEvents   End If '还要求工具(T)-宏(M)-安全性(M)-可靠发行商(T)-勾选了“信任对于VB项目的访问(V),就别手工了,自动来:   Dim Chgset As Boolean   '陷阱测试,VBProject.Protection在这儿并无实际的意义   Debug.Print ThisWorkbook.VBProject.Protection   If Err.Number = 1004 Then     Err.Clear     Application.SendKeys "%TMS%T%V{ENTER}" Chgset = True DoEvents   End If   '执行升级操作: Dim vbCmp As VBComponent Dim fname As String   For Each vbCmp In ThisWorkbook.VBProject.VBComponents     If vbCmp.Type = vbext_ct_MSForm Then 'ThisWorkbook.VBProject.VBComponents.Remove vbCmp     fname = vbCmp.Name     If Dir("共享路径\" & fname & ".frm") <> "" Then     Application.VBE.ActiveVBProject.VBComponents.Remove ThisWorkbook.VBProject.VBComponents(fname)     Application.VBE.ActiveVBProject.VBComponents.Import " 共享路径\"  & fname & ".frm"     End If     End If   Next vbCmp   MsgBox "升级完成"      '操作完成后还原操作前的状态 Application.ScreenUpdating = True If Chgset Then Application.SendKeys "%TMS%T%V{ENTER}" End Sub
/
本文档为【VBA程序也玩自动升级】,请使用软件OFFICE或WPS软件打开。作品中的文字与图均可以修改和编辑, 图片更改请在作品中右键图片并更换,文字修改请直接点击文字进行修改,也可以新增和删除文档中的内容。
[版权声明] 本站所有资料为用户分享产生,若发现您的权利被侵害,请联系客服邮件isharekefu@iask.cn,我们尽快处理。 本作品所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用。 网站提供的党政主题相关内容(国旗、国徽、党徽..)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。

历史搜索

    清空历史搜索