excel vba BEFORESAVE事件问题

在这个事件下,我编了一个只有写密码才能保存的事件,但是为什么只要我的工作薄改动过,就不执行此程序呢... 在这个事件下,我编了一个只有写密码才能保存的事件,但是为什么只要我的工作薄改动过,就不执行此程序呢 展开
 我来答
万年金刚钻
2014-07-20 · TA获得超过1.6万个赞
知道大有可为答主
回答量:1.1万
采纳率:0%
帮助的人:3517万
展开全部
少了END IF(不过相信不是这个问题)
我觉得程序触发应该不是问题,不管你改动过没有,如果执行Save操作一定会触发的。。
问题可能是,修改了工作簿以后,未执行保存的情况下,点击关闭文档,系统会提示是否保存,如果回答不保存当然毫无疑议直接就退出了。。但是如果回答保存的情况下,你的过程被触发但是没能提供正确的密码时,虽然Cancel=True停止了Save的行为,但是没能cancel关闭动作而继续了文档的关闭动作。。。当然,如果这是你的期望结果的话,那就没有任何问题的了。。不过,,如果文档被修改后操作者的原意可能并不想未保存就退出,那你的退出就比较突兀了。
追问
我是想我把这个EXCEL表做好后,无论是退出还是保存都是不能保存的,都是不可用的,只有有密码才能保存。能不能帮写一下,做不出来呀
追答
那你现在的没有问题啊,我试过。你的问题到底是什么呢?不管工作簿是否改变过,工作簿保存动作时,是有触发而且交互都是成功的呢。除非你说的工作簿改动,是直接改了代码
不想起名字了99
2014-07-20 · TA获得超过1695个赞
知道大有可为答主
回答量:2708
采纳率:76%
帮助的人:731万
展开全部
代码呢?看不到代码无法分析
更多追问追答
追问
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
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 1条折叠回答
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式