首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Before save不适用于save as

Before save不适用于save as
EN

Stack Overflow用户
提问于 2016-08-24 21:37:30
回答 1查看 1.2K关注 0票数 1

我已经制作了一个宏来保护工作表,并将工作表更改为工作表"A",然后保存文件,然后返回到我在其中启动的工作表。

不幸的是,当我的宏在工作簿中时,“另存为”选项不起作用。每当我单击“另存为”并想要搜索保存文件的位置时,宏就会开始运行,并禁用我尝试执行的操作。

这是我正在写的代码:

代码语言:javascript
复制
Private Sub Workbook_BeforeSave(ByVal SaveAsUI As Boolean, Cancel As Boolean)  
    Cancel = True  
    Application.EnableCancelKey = XlEnableCancelKey.xlDisabled  
    Application.ScreenUpdating = False  
    Application.EnableEvents = False  
    Dim aktywny As Worksheet    
    Set aktywny = ActiveSheet   
For Each Sh In ThisWorkbook.Sheets  
    If InStr(Sh.Name, ".") <> 0 Then  
        If Sh.ProtectContents = False Then  
            Sh.Protect Password:="XXX", DrawingObjects:=True,   Contents:=True, Scenarios:=True _  
            , AllowFormattingCells:=True, AllowFormattingColumns:=True  
        End If  
    End If   
Next  
ThisWorkbook.Sheets("A").Activate  
Me.Save  
aktywny.Activate  
ThisWorkbook.Saved = True  
Cancel = True  
Application.EnableEvents = True  
Application.ScreenUpdating = True  
End Sub 
EN

回答 1

Stack Overflow用户

发布于 2016-08-24 21:39:17

我猜是因为Cancel = True吧。

您可能应该使用ByVal SaveAsUI As Boolean标志来查看用户是否单击了“另存为”。

如果你不想让宏在“另存为”时运行,你可以把这个放在方法的开头:

代码语言:javascript
复制
If SaveAsUI Then
    Return
End If
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/39124904

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档