编如何保存一个宏文件另存为的宏

查看: 7648|回复: 22
清除宏并另存为文件的代码该如何编写
阅读权限20
在线时间 小时
请教各位老师,比如E盘“测试”文件夹下有若干.xls文件,这些文件里面都有一些宏和按钮,现在的目的是想将这些文件批量删除宏和按钮,并另存为另一文件夹下,比如“结果”文件夹。
不知道这段代码该如何写。
谢谢老师们!
阅读权限95
在线时间 小时
Sub MacroDel()
& & mySourcePath = &D:\Test& '指定源文件夹
& & myTargetPath = &D:\Result& '指定结果文件夹
& &
& & myFile = Dir(mySourcePath & &*.xls&) '找到第一个xls文件
& & Do Until myFile = && '遍历直到搜索结果为空
& && &&&Workbooks.Open Filename:=mySourcePath & myFile '打开搜到的文件
& && &&&
& && &&&For Each st In ActiveWorkbook.Sheets '遍历该工作簿文件中所有工作表
& && && && &For Each sp In st.Shapes '遍历该工作表中所有图形
& && && && && & If sp.OnAction && && Then sp.Delete '检查如果有宏链接则删除该图片或按钮
& && && &'If sp.OnAction && && Then sp.OnAction = && '或者检查有宏链接时仅删除链接但保留该图片或按钮
& && && && &Next
& && &&&Next
& && && && &
& && &&&Sheets.Copy '复制已经去掉宏按钮的所有工作表
& && &&&Workbooks(Application.Windows.Count).SaveAs myTargetPath & myFile & &.xls& '把它们另存到目标文件夹
& && &&&ActiveWorkbook.Close '关闭复制后命名保存好的新文件。
& && &&&'Windows(myFile).Activate '回到打开状态的源文件(默认状态,所以此语句不用运行啦)
& && &&&ActiveWorkbook.Saved = True '改变使该打开动过的源文件属性为已存(为阻止提醒框出现,欺骗电脑一下下)
& && &&&ActiveWindow.Close '欺骗电脑文件改动已保存后,就可以不出现是否保存的提醒而直接关掉源文件啦。
& && &&&myFile = Dir '进入下一个文件的搜寻
& & Loop
End Sub
复制代码
阅读权限95
在线时间 小时
楼上只是删除了宏链接,并没有删除宏本身
阅读权限95
在线时间 小时
原帖由 doitbest 于
13:30 发表
如果认为我武断,那我道歉!
我并没说代码不好,也没有实际测试,并认为已经说明够详细了
我只是疑惑没有看到删除宏的代码部分,回头我也实际用一用
呵呵,握手!
我以为你说解释够详细是指的【代码中没有删除宏代码的作用】
实际上我后来意识到你是代我回答楼主的问题……
不好意思,冲动啦。
你是好心呢。
(我已经修改回复,删去错误部分啦。谢谢你理解!!)
阅读权限20
在线时间 小时
谢谢香川群子,辛苦码了那么多字。doitbest ,可否再进一步指点,对代码看不太懂。
阅读权限95
在线时间 小时
不能再细了,还要怎么解释啊
阅读权限95
在线时间 小时
原帖由 doitbest 于
12:03 发表
楼上只是删除了宏链接,并没有删除宏本身
呵呵,你是只看代码就得到的结论吧。
有没有试一试呢?
我提供的代码是经过测试,并消除了bug的正确代码。
在这里,【Sheets.Copy】这一句代码,它的作用可真是一句顶一万句呢。
是zamyi这位超高手大侠教我的方法。
请你自己试试,体会一下再说。
阅读权限95
在线时间 小时
原帖由 doitbest 于
13:16 发表
不能再细了,还要怎么解释啊
楼主或许是初学者。
什么都不懂。
如果这样逐句的解释都还看不懂,那就一句一句问吧。
[ 本帖最后由 香川群子 于
13:24 编辑 ]
阅读权限95
在线时间 小时
原帖由 lingyi123456 于
13:11 发表
谢谢香川群子,辛苦码了那么多字。doitbest ,可否再进一步指点,对代码看不太懂。
我对每一句代码都做了解释了。
当然,初学者可能还是记不住代码内容,但至少每一句代码的目的是明确的。
你先复制后到一个文件里命名保存,然后把源文件夹和目标文件夹按你自己要求修改以后,
运行一下试试吧。
阅读权限95
在线时间 小时
如果认为我武断,那我道歉!
我并没说代码不好,也没有实际测试,并认为已经说明够详细了
我只是疑惑没有看到删除宏的代码部分,回头我也实际用一用
[ 本帖最后由 doitbest 于
13:35 编辑 ]
最新热点 /1
ExcelHome每周都有线上直播公开课,
国内一流讲师真身分享,高手贴身答疑,
赶不上直播还能看录像,
关键居然是免费的!
厚木哥们都已经这么努力了,
你还好意思说学不好Office。
玩命加载中,请稍候
玩命加载中,请稍候
Powered by
本论坛言论纯属发表者个人意见,任何违反国家相关法律的言论,本站将协助国家相关部门追究发言者责任! & & 本站特聘法律顾问:徐怀玉律师 李志群律师

参考资料

 

随机推荐