excel vba BEFORESAVE事件问题
在这个事件下,我编了一个只有写密码才能保存的事件,但是为什么只要我的工作薄改动过,就不执行此程序呢...
在这个事件下,我编了一个只有写密码才能保存的事件,但是为什么只要我的工作薄改动过,就不执行此程序呢
展开
2个回答
展开全部
少了END IF(不过相信不是这个问题)
我觉得程序触发应该不是问题,不管你改动过没有,如果执行Save操作一定会触发的。。
问题可能是,修改了工作簿以后,未执行保存的情况下,点击关闭文档,系统会提示是否保存,如果回答不保存当然毫无疑议直接就退出了。。但是如果回答保存的情况下,你的过程被触发但是没能提供正确的密码时,虽然Cancel=True停止了Save的行为,但是没能cancel关闭动作而继续了文档的关闭动作。。。当然,如果这是你的期望结果的话,那就没有任何问题的了。。不过,,如果文档被修改后操作者的原意可能并不想未保存就退出,那你的退出就比较突兀了。
我觉得程序触发应该不是问题,不管你改动过没有,如果执行Save操作一定会触发的。。
问题可能是,修改了工作簿以后,未执行保存的情况下,点击关闭文档,系统会提示是否保存,如果回答不保存当然毫无疑议直接就退出了。。但是如果回答保存的情况下,你的过程被触发但是没能提供正确的密码时,虽然Cancel=True停止了Save的行为,但是没能cancel关闭动作而继续了文档的关闭动作。。。当然,如果这是你的期望结果的话,那就没有任何问题的了。。不过,,如果文档被修改后操作者的原意可能并不想未保存就退出,那你的退出就比较突兀了。
追问
我是想我把这个EXCEL表做好后,无论是退出还是保存都是不能保存的,都是不可用的,只有有密码才能保存。能不能帮写一下,做不出来呀
追答
那你现在的没有问题啊,我试过。你的问题到底是什么呢?不管工作簿是否改变过,工作簿保存动作时,是有触发而且交互都是成功的呢。除非你说的工作簿改动,是直接改了代码
展开全部
代码呢?看不到代码无法分析
更多追问追答
追问
A=INPUTBOX("HJGKHG")
IF A="123456"THEN
Cancel = FALSE
ELSE
CANCEL=TRUE
msgbox "本工作薄禁用保存及另存。"
追答
代码好像没有什么问题
我在2007下试了一下,改动后也执行
没有任何问题
Private Sub Workbook_BeforeSave(ByVal SaveAsUI As Boolean, Cancel As Boolean)
A = InputBox("HJGKHG")
If A = "123456" Then
Cancel = False
Else
Cancel = True
MsgBox "本工作薄禁用保存及另存。"
End If
End Sub
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询
广告 您可能关注的内容 |