加载中…
个人资料
  • 博客等级:
  • 博客积分:
  • 博客访问:
  • 关注人气:
  • 获赠金笔:0支
  • 赠出金笔:0支
  • 荣誉徽章:
正文 字体大小:

EXCEL强制启用宏的实现

(2018-06-01 14:18:59)
标签:

it

文化

教育

分类: EXCEL
如果,EXCEL禁用了宏,那么,我们制作的很多功能就不能实现了。为此,必须要求启用宏。
首先,当然是在工作薄里添加一个名为“启用宏”的工作表,写上些内容,提示如何启用宏。
其次,在模块里添加如下代码
Sub AskUserEnabledMacros()
Dim wkslnfoSheet As Worksheet
Dim objSheet As Object
On Error Resume Next
Set wkslnfoSheet = ThisWorkbook.Worksheets("启用宏")
If wkslnfoSheet Is Nothing Then                           '<启用宏>工作表并判断其是否存在
    MsgBox "不能找到<启用宏>工作表", vbCritical
    Exit Sub
End If
Application.ScreenUpdating = False                      '关闭屏幕更新
For Each objSheet In ThisWorkbook.Sheets                '隐藏其他工作表
    objSheet.Visible = xlSheetVisible
Next objSheet
wkslnfoSheet.Visible = xlSheetVeryHidden                '显示启用宏工作表
ThisWorkbook.Saved = True
Application.ScreenUpdating = True
End Sub
Sub RunOnClose()
    Dim wksInfoSheet As Worksheet
    Dim objSheet As Object
    On Error Resume Next
    Set wksInfoSheet = ThisWorkbook.Worksheets("启用宏")    '<启用宏>工作表并判断其是否存在
    If wksInfoSheet Is Nothing Then
        MsgBox "不能够找到<启用宏>工作表", vbCritical
        Exit Sub
    End If
    Application.ScreenUpdating = False   '关闭屏幕更新
    wksInfoSheet.Visible = xlSheetVisible
    For Each objSheet In ThisWorkbook.Sheets  '隐藏其他工作表
        If Not objSheet Is wksInfoSheet Then
            objSheet.Visible = xlSheetVeryHidden
        End If
    Next objSheet
    Application.ScreenUpdating = True   '屏幕更新
    ThisWorkbook.Save    '保存工作簿
End Sub
-------------------------------------------------------------------------
华丽的分割
然后再,thisWorkBok对象的Open事件里引用AskUserEnabledMacros方法
beforColse事件里引用RunOnClose方法
完美收官。

0

阅读 收藏 喜欢 打印举报/Report
  

新浪BLOG意见反馈留言板 欢迎批评指正

新浪简介 | About Sina | 广告服务 | 联系我们 | 招聘信息 | 网站律师 | SINA English | 产品答疑

新浪公司 版权所有