前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >VBA代码库11:强制用户启用宏(续)

VBA代码库11:强制用户启用宏(续)

作者头像
fanjy
发布2021-05-08 09:44:32
1.1K0
发布2021-05-08 09:44:32
举报
文章被收录于专栏:完美Excel

在《VBA代码库10:强制用户启用宏》中,讲解了一段用户在打开工作簿时必须启用宏才能使用工作簿功能的代码。本文给出另一段同样可以实现强制用户启用宏的代码。

如果用户没有启用宏,那么当打开工作簿时,一个特定的工作表将提示用户启用宏,而工作簿中的其他工作表则被隐藏。

代码如下:

代码语言:javascript
复制
Private Sub Workbook_Open()
    With Application
        '禁用ESC键
        .EnableCancelKey = xlDisabled
        .ScreenUpdating = False
        Call UnhideSheets
        .ScreenUpdating = True
        '重新启用ESC键
        .EnableCancelKey = xlInterrupt
    End With
End Sub
Private Sub UnhideSheets()
    Dim Sheet As Object
    For Each Sheet In Sheets
        If Not Sheet.Name = "提示" Then
            Sheet.Visible = xlSheetVisible
        End If
    Next
    Sheets("提示").Visible = xlSheetVeryHidden
   'Application.Goto Worksheets(1).[A1], True '< 可选的
    Set Sheet = Nothing
    ActiveWorkbook.Saved = True
End Sub
Private Sub Workbook_BeforeClose(Cancel As Boolean)
    With Application
        .EnableCancelKey = xlDisabled
        .ScreenUpdating = False
        Call HideSheets
        .ScreenUpdating = True
        .EnableCancelKey = xlInterrupt
    End With
End Sub
Private Sub HideSheets()
    Dim Sheet As Object '< 包括工作表和图表工作表
    With Sheets("提示")
         '工作表的隐藏构成了一种变化,这种变化产生了
         '自动的"保存?"提示,所以如果工作簿已经
         '在此之前被保存,那么下一行和前几行
         '与下面的.[A100]有关,绕过“保存?”对话...
        If ThisWorkbook.Saved = True Then.[A100] = "Saved"
        .Visible = xlSheetVisible
        For Each Sheet In Sheets
            If Not Sheet.Name = "提示" Then
                Sheet.Visible =xlSheetVeryHidden
            End If
        Next
        If .[A100] = "Saved" Then
            .[A100].ClearContents
            ThisWorkbook.Save
        End If
        Set Sheet = Nothing
    End With
End Sub

注:本文的代码整理自vbaexpress.com。

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2021-05-07,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 完美Excel 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档