excel己用VBA禁止保存和另存,能否再用VBA另存?

Private Sub Workbook_BeforeSave(ByVal SaveAsUI As Boolean, Cancel As Boolean)
msgbox "本工作薄禁用保存及另存。"
Cancel = True
End Sub
能用代码使其暂时失效吗?

第1个回答  2013-11-19
在宏里面设置一个全局变量,在函数里面对全局变量设置有效跟无效,并判定执行

dim mysave Boolean
Private Sub Workbook_BeforeSave(ByVal SaveAsUI As Boolean, Cancel As Boolean)
call mysavesub '调用函数确认保存密码
if mysave = false then '如果布尔类型mysave=false 则不能保存
msgbox "本工作薄禁用保存及另存。"
Cancel = True
end if
End Sub

public sub mysavesub()
psw = "123456" '保存密码
if inputbox("请输入保存密码:) = psw then
mysave = true '临时设置 为可以保存
end if

end sub追问

我在表格添加了一个另存为指定文件名的按钮,不知能不能把代码加入这个按钮的宏里,而且不需要输入密码,只有点击按钮才能另存。

本回答被提问者采纳
第2个回答  2013-11-19
建议你加一段代码,判断是否为本人操作

Environ("username")="你的名字" (电脑开机帐号、区分大小写)

如果是本人操作,就可以保存或另存
如果不是,就不能保存或另存
第3个回答  2015-10-25
Private Sub Workbook_BeforeSave(ByVal SaveAsUI As Boolean, Cancel As Boolean)
If SaveAsUI = True Then Cancel = True
End Sub

excel己用VBA禁止保存和另存,能否再用VBA另存?
if mysave = false then '如果布尔类型mysave=false 则不能保存 msgbox "本工作薄禁用保存及另存。"Cancel = True end if End Sub public sub mysavesub()psw = "123456" '保存密码 if inputbox("请输入保存密码:) = psw then mysave = true '临时设置 为可以保存 end if end sub ...

用VBA禁止使用另存为来保存excel工作簿
如果某个工作簿需要由多人合作,分不同的阶段完成,为了避免其中的某个用户将文件另存为其他文件名而影响下一个使用者,可以用VBA代码禁止用户使用“另存为”来保存工作簿。方法如下:1.按Alt+F11,打开VBA编辑器,在“工程”窗口中双击“ThisWorkBook”,在右侧的代码窗口中输入下列代码:Private Sub ...

具有宏的excel保存时提示出错,无法保存,禁用宏后就可以保存,请问如何...
为了使用这样的功能,但又想保存的话,就要将文件存另一个扩展名的格式了,可以在文件---另存为,选择启用宏的工作簿.xlsm来进行保存!04 如果不选择启用宏的工作簿.xlsm来保存,还可以选择97--2003的格式来保存,这旧版本的格不区分内容是不是有宏之类的存在!05 最...

excel中用vba怎么另存对话框vba另存
1. 可以通过VBA代码实现在Excel中弹出另存对话框。2. 原因是VBA中提供了SaveAs方法,可以用于保存文件,而另存对话框可以让用户选择保存的路径和文件名,提供更灵活的保存方式。3. 在VBA中,可以使用以下代码实现另存对话框: ``` Sub SaveAsDialog() Dim filePath As Variant filePath = Applicatio...

VBA,编写了一个不能保存excel的代码,结果excel不能保存了不假,连代码...
本过程在参数SaveAsUI 如果为true,显示“另存为”对话框。Cancel,为True,则过程完成时不会保存工作簿 你添加的代码,却另指定为false时显示“另存为”对话框,当然无法原文件保存。而且,Cancel又指定为True,当然永远无法保存。

excel在属性里使用xlSheetVeryHidden 和vba的工程密码都有破绽,另存...
没办法。几个思路 1、在工程里面写代码不可能安全,除非封装了,在工程里调用。2、只允许保存为固定格式 3、不能直接保存应该是文档问题

如何用VBA实现将Excel 关闭后直接另存到一个指定的路径,并在另存文件...
On Error Resume Next ThisWorkbook.Save'保存本文件 Application.DisplayAlerts = False ThisWorkbook.SaveAs "D:\\ff\\测试" & Format(Now, "yyyy年m月d日 h时m分s秒") & ".xls"'另存为其它文件,这里弄成你自己的路径和文件名 Application.DisplayAlerts = TrueEnd Sub ...

EXCEL VBA编程的问题: 我用命令禁用了EXCEL本身的保存按钮,但设定的...
'在模块中声明全局变量,通过窗体中控制全局变量的值来执行你需要的功能!Dim 全局变量 As Boolean Private Sub Workbook_BeforeSave(ByVal SaveAsUI As Boolean, Cancel As Boolean)If 全局变量 = True Then Cancel = False Else Cancel = True End If End Sub ...

excel中当再次点击保存宏时不会重复保存,怎样修改vba?
如果单号为唯一,可以加一个判断单号是否已有的信息。在copy前用一个变量先把编号给加载到内存。然后再激活要粘贴数据的存储表,激活之后,用一个IF语句来判断这个表里边是否存在这个编号。例如引用一个工作表函数COUNTIF,表达式直接输入编号对应的变量就行,查找的区域是存储表的编号区域。如果统计数大于...

excel vba怎么另存新工作簿
您好,excel中使用vba来创建新的工作薄并另存为的方法,有需要的朋友可以参考本文,来看看吧!步骤 1、首先我们打开一个工作样表作为例子。2、我们使用alt+f11组合快捷键进入vbe编辑器,插入一个新的模块,并在模块中输入以下代码:Sub AddSaveAsNewWorkbook()Dim Wk As Workbook Set Wk = Workbooks....

相似回答