打开APP
userphoto
未登录

开通VIP,畅享免费电子书等14项超值服

开通VIP
Excel VBA工作薄 5.18 禁用宏功能就能阻止我的保护嘛?NO WAY!

前景提要

在我们学习VBA保护数据工作薄的过程中,大家一定有不少的疑问,因为很多人都说,依靠工作薄的宏文件来保护数据是非常的不合理的,因为宏这个功能是能够被禁用的,确实是这样,现在很多的电脑都已经默认禁用了宏功能,导致很多的童鞋在最初接触VBA的时候会发现自己的电脑完全没有VBA的模块,就是因为宏被禁用的缘故,那么既然宏能够被禁用,那么是不是我们之前学习的保护工作薄的方式也会被禁用呢?不是的,我们可以设置在禁用宏的情况下,工作薄的内容是不可见的。

场景模拟

今天好像没有什么场景模拟的必要了,直接上代码吧

代码区

第一步,我们需要创建一个sheet,为了后续代码的方面,我们就叫他检测吧,检测电脑是否打开了宏,可以是一个空白的sheet

我们的关键数据在sheet1这个工作薄中

第一段代码

Sub openss() 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 For Each objSheet In ThisWorkbook.Sheets objSheet.Visible = xlSheetVisible Next objSheet wksInfoSheet.Visible = xlSheetVeryHidden ThisWorkbook.Saved = True Application.ScreenUpdating = TrueEnd Sub
Sub closess() 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 ThisWorkbook.SaveEnd Sub

其实这里有两段代码,主要作用是用来检测是否启用了宏功能的

然后是第二段代码,这一段代码要写在thisworkbook里面

Private Sub Workbook_Open() AskUserEnabledMacrosEnd SubPrivate Sub Workbook_BeforeClose(Cancel As Boolean) RunOnCloseEnd Sub

来看看效果,首先我们禁用我们的宏功能来测试下能否看到数据

我们已经设置了禁用宏,

打开文件之后,你看不到数据表,你只能看到一个检测窗口

如果你更改下设置,改成启用宏

现在数据就出来了。 

本站仅提供存储服务,所有内容均由用户发布,如发现有害或侵权内容,请点击举报
打开APP,阅读全文并永久保存 查看更多类似文章
猜你喜欢
类似文章
强制用户启用宏 - 126的日志 - 网易博客
EXCEL强制启用宏的实现
VBA 修改关闭不保存代码
【Excel VBA】复制指定文件夹下多工作簿的工作表到汇总工作簿
【新手必备】VBA练手专题
如何在离职一个月后,让自己曾经辛苦制作的Excel模板优雅的自动报废?
更多类似文章 >>
生活服务
热点新闻
分享 收藏 导长图 关注 下载文章
绑定账号成功
后续可登录账号畅享VIP特权!
如果VIP功能使用有故障,
可点击这里联系客服!

联系客服