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

excelperfect

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

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

代码如下:

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。

(0)

相关推荐

  • 就这么简单!一键按职业拆分成多个多工作表、工作簿(完善版)

    恭喜下面粉丝:维维.Luo.白雪皑皑,获得书籍<Excel VBA跟卢子一起学 早做完,不加班>,加卢子微信chenxilu2019,发送姓名电话地址. 今天的文章主要是对以前发过的教程进 ...

  • 用列信息批量生成工作表,看这篇就够了

    ▎写在前面 本文通过一个简单的案例,详细讲解批量生成多个工作表的VBA需求,并考虑可能出现的一些问题,加深对If条件判断的使用.新手建议一步一步根据文章内容进行测试. ▎案例需求 实际需求模拟如下: ...

  • VBA代码库10:强制用户启用宏

    有时,必须确保用户在打开工作簿时启用宏,否则就不能实现工作簿的效果.由于无法使用宏去打开宏,因此需要一种确保用户启用宏的技术.下面讲解的方法隐藏除"欢迎"工作表(告诉用户启用宏)之 ...

  • 如何强制用户启用宏?

    问:有时候,我们使用VBA为工作簿编写了一些功能,但是如果用户在打开工作簿时不启用宏设置或者彻底禁用宏,那么这些功能就无法使用.例如,有位网友问我,他想使用双重保护来保护某工作簿,一重保护是工作簿自带 ...

  • 强制用户启用宏

    有时,必须确保用户在打开工作簿时启用宏,否则就不能实现工作簿的效果.由于无法使用宏去打开宏,因此需要一种确保用户启用宏的技术.下面讲解的方法隐藏除"欢迎"工作表(告诉用户启用宏)之 ...

  • Excel怎么保护自己的劳动成果?强制用户启用宏,再加上这一步

    当Excel工作簿中含有VBA代码时,用户在使用时需要启用宏,否则工作簿的某些功能就会失效.或者是编辑的VBA代码含有定期删除指令,为了保证工作簿的安全性,和防止他人禁用宏造成知识产权法受到侵害,需要 ...

  • VBA代码库12:处理日期和时间

    excelperfect 本文中的代码来自于www.cpearson.com,特辑录于此,方便在需要时参考. 下面的过程和函数代码用于处理日期和时间. 指定年的第一个星期一 下面的函数返回指定年的第一 ...

  • 30个有用的Excel VBA代码(11~15)

    11.将所有公式转换为值 如果工作表包含大量公式,并且要将这些公式转换为值,请使用此代码. Sub ConvertToValues() With ActiveSheet.UsedRange .Valu ...

  • VBA代码库09:增强的CELL函数和INFO函数

    excelperfect 本文介绍的自定义函数来源于wellsr.com,以Excel的CELL函数和INFO函数为样板,可直接返回工作表或工作簿的名称或工作簿路径,以及与Excel及其操作环境有关的 ...

  • 工作簿事件示例——强制用户必须启用宏

    有时候,我们使用VBA为工作簿编写了一些功能,但是如果用户在打开工作簿时不启用宏设置或者彻底禁用宏,那么这些功能就无法使用.例如,我使用VBA为工作簿添加了自定义菜单,但是如果用户禁用宏,那么自定义菜 ...

  • VBA终极神器 代码库收藏管理 输入提示

    代码助手下载地址 https://share.weiyun.com/An8Cylu7 5.1 工具栏菜单插入代码 顶部工具栏点击对应标题可直接插入代码 如果你得代码库非常大 菜单栏加载会影响VBA启动 ...