excel学习库

excel表格_excel函数公式大全_execl从入门到精通

EXCEL中,如果禁用VBA将无法继续工作

朋友们好,今日我们继续讲解VBA代码解决方案的第二十六讲,这讲的内容中我们会讲解在使用VBA开发的工作簿文件完成后,要求用户在打开工作薄时同时启用VBA代码。也就是说我们希望用户在打开工作簿时启用宏,此时可以使用“禁用宏则关闭工作簿”的功能外。还可以隐藏所有有数据的工作表,如果用户在打开工作簿时禁用宏则只显示一张空白的工作表,达到强制启用宏的效果。这里会用到应用于Charts(图表)和Worksheets(工作表)对象的Visible属性。这个属性决定对象是否可见, 语法如下:expression.Visible 参数expression是必需的,该表达式返回上面的对象之一。 Visible属性可以设置为下面的常量之一。 a) xlSheetHidden 其值为 0表示隐藏对象,可以通过“格式”→“工作表”→“取消隐藏”菜单使对象重新可见,等同于设置为False。 b) xlSheetVisible 其值为 -1表示使对象重新可见,等同于设置为True。 c) xlSheetVeryHidden 其值为2表示隐藏对象,使该对象重新可见的唯一方法是将此属性设置为True或xlSheetVisible。 我们看如下代码: Dim sh As Worksheet Private Sub Workbook_BeforeClose(Cancel As Boolean) Sheet1.Visible = True For Each sh In ThisWorkbook.Sheets If sh.Name <> "空白" Then sh.Visible = xlSheetVeryHidden End If Next ActiveWorkbook.Save End Sub Private Sub Workbook_Open() For Each sh In ThisWorkbook.Sheets If sh.Name <> "空白" Then sh.Visible = xlSheetVisible End If Next Sheet1.Visible = xlSheetVeryHidden End Sub 代码解析: a) 第2行到第10行代码是工作簿的BeforeClose事件过程,在工作簿关闭前隐藏除“空白”表以外的所有的工作表。b) 第3行代码将“空白”表的Visible属性设置为True,使其可见。c) 第4行到第8行代码使用For Each...Next语句遍历工作簿中所有的工作表,将除“空白”表以外的所有工作表的Visible属性设置为xlSheetVeryHidden,使之隐藏。Visible属性设置为xlSheetVeryHidden后工作表不能通过“格式”→“工作表”→“取消隐藏”菜单来显示隐藏的工作表。d) 第9行代码使用Save方法保存代码所在工作簿的更改,在关闭工作簿时不显示消息框。e) 第10行到第18行代码是工作簿的Open事件过程,在打开工作簿时将除“空白”表以外的所有工作表的Visible属性设置为xlSheetVisible,取消隐藏。如果打开工作簿时禁用宏,则工作簿中除了“空白”表以外,其他的工作表还处于深度隐藏的状态,这样就达到强制用户启用宏的效果,当然这还需要VBA工程保护的配合。 下面我们看本节内容的实测代码: 一:代码截图 二:在启用VBA代码后的工作表视图:三:禁用代码后的视图:今日内容回向: 1 如何做到在禁用VBA代码时,视图只显示“空白”页。 2 xlSheetHidden 的值有几种?都有什么意义? 3 本节两段代码的意义是否掌握了?

发表评论:

◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。

«    2024年12月    »
1
2345678
9101112131415
16171819202122
23242526272829
3031
控制面板
您好,欢迎到访网站!
  查看权限
网站分类
搜索
最新留言
    文章归档
      友情链接