ExcelHome技术论坛

 找回密码
 免费注册

QQ登录

只需一步,快速开始

快捷登录

搜索
EH技术汇-专业的职场技能充电站 妙哉!函数段子手趣味讲函数 Excel服务器-会Excel,做管理系统 Excel Home精品图文教程库
HR薪酬管理数字化实战 Excel 2021函数公式学习大典 Excel数据透视表实战秘技 打造核心竞争力的职场宝典
300集Office 2010微视频教程 数据工作者的案头书 免费直播课集锦 ExcelHome出品 - VBA代码宝免费下载
用ChatGPT与VBA一键搞定Excel WPS表格从入门到精通 Excel VBA经典代码实践指南
查看: 3694|回复: 9

[求助] 求触发“另存为”的源事件

[复制链接]

TA的精华主题

TA的得分主题

发表于 2011-6-21 09:56 | 显示全部楼层 |阅读模式
请教大师,EXCEL的这样一个问题:

当保存文件时,可以触发:
Private Sub Workbook_BeforeSave(ByVal SaveAsUI As Boolean, Cancel As Boolean)
End Sub

当关闭文件时,可以触发:
Private Sub Workbook_BeforeClose(Cancel As Boolean)
End Sub
等等、等等

当我点击“另存为”时,我就不知道有无类似上面的东西没?
我想在点击“另存为”时,程序将执行一段我需要的代码,关健是没有上面的触发源。

谢谢指点!

TA的精华主题

TA的得分主题

发表于 2011-6-22 12:30 | 显示全部楼层

〖Excel Home友情提示〗

   

很遗憾通知楼上朋友,您的帖子在24小时之内没有任何回复!

通常情况下,本论坛发布的主题帖会在8小时被回复或处理。您的帖子在24小时之内未被回复,其中的原因可能是

1、问题表述不清、模棱两可,难以理解,帮助者被搞晕了,夺帖而出;
2、没有上传必要的附件,或附件被遗忘在某个角落;
3、发帖提问时,语气带棱角、带挑衅,不幸被列入不受欢迎的帖子;
4、所提问题不成立,或提不合理的要求,乐于助人者使出“走为上”之计;
5、话题较偏、较冷或者发布到了不合适的版块,暂时无人问津,顾影自怜。


为了提高您的问题解决效率,我们推荐您阅读以下文章:
* 如何发表新话题和上传附件:http://club.excelhome.net/thread-45649-1-1.html
* 发帖的技巧:http://club.excelhome.net/thread-176339-1-1.html
* EH技术论坛的最佳学习方法:http://club.excelhome.net/thread-117862-1-1.html

TA的精华主题

TA的得分主题

发表于 2011-6-22 15:16 | 显示全部楼层
你好,Workbook_BeforeSave事件中的SaveAsUI 参数为真的时候,相当于调用的就是SaveAs
Private Sub Workbook_BeforeSave(ByVal SaveAsUI As Boolean, Cancel As Boolean)
If SaveAsUI =True Then
....................
End If
End Sub

TA的精华主题

TA的得分主题

 楼主| 发表于 2011-6-22 18:31 | 显示全部楼层
LEE老师:
不知为什么,“另存为”的对话框会出现两次
[B1]的值改变后,当点击“另存为”时,保存的文件名自动取[B1]的值,但不知为什么,“另存为”的对话框会出现两次,非常倒胃。
请大师指教,问题出在了什么地方?

Book1.rar

7.69 KB, 下载次数: 37

TA的精华主题

TA的得分主题

发表于 2011-6-22 22:27 | 显示全部楼层
[广告] Excel易用宝 - 提升Excel的操作效率 · Excel / WPS表格插件       ★免费下载 ★       ★ 使用帮助
当你点击另存为菜单项的时候,就会显示另存为对话框,而你的代码中又一次调用了另存为对话框。
试试这样:
Private Sub Workbook_BeforeSave(ByVal SaveAsUI As Boolean, Cancel As Boolean)
    If SaveAsUI Then
        str1 = Sheet1.Cells.Find("文件名:").Next & ".xls"
        Application.SendKeys str1
    End If
End Sub

TA的精华主题

TA的得分主题

 楼主| 发表于 2011-6-22 22:52 | 显示全部楼层

回复 5楼 清风_ll 的帖子

非常感谢清风老师!
我试了,虽然不再出现再次对话框,但默认保存的文件名却还是“Book1.xls”,而不是我要的“BBBB.xls”
已经很接近了,快要成了,您看是哪里又出状况了?请指点。

TA的精华主题

TA的得分主题

发表于 2011-6-22 23:24 | 显示全部楼层

TA的精华主题

TA的得分主题

 楼主| 发表于 2011-6-23 12:18 | 显示全部楼层

回复 7楼 清风_ll 的帖子

我又在别的电脑上试了(选了三台电脑,均是lenovo品牌),都没使我激动,还有别的方法吗?
谢谢!

TA的精华主题

TA的得分主题

发表于 2011-6-23 13:34 | 显示全部楼层
If SaveAsUI Then
            Cancel = True  '加一行
        ........

TA的精华主题

TA的得分主题

发表于 2018-3-22 01:20 来自手机 | 显示全部楼层
[广告] VBA代码宝 - VBA编程加强工具 · VBA代码随查随用  · 内置多项VBA编程加强工具       ★ 免费下载 ★      ★使用手册
请教大师
在vba工作簿中,在指定的时间段,第一次保存后触发打印事件,自动打印。规定外时间触发另一段程序(弹出对话框,判定是否需要打印)代码怎么写。万分感谢
您需要登录后才可以回帖 登录 | 免费注册

本版积分规则

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

GMT+8, 2024-5-1 23:21 , Processed in 0.051316 second(s), 12 queries , Gzip On, MemCache On.

Powered by Discuz! X3.4

© 1999-2023 Wooffice Inc.

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

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

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