EXCEL 如何用vba隐藏工作表?

如何设置一下:当打开excel时,如果不允许宏运行,那么所有标签页和工作表格都不显示。求高手对vba代码进行指教!... 如何设置一下:当打开excel时,如果不允许宏运行,那么所有标签页和工作表格都不显示。
求高手对vba代码进行指教!
展开
 我来答
COUNTIFABS
2013-06-29 · TA获得超过2154个赞
知道大有可为答主
回答量:1594
采纳率:55%
帮助的人:1236万
展开全部

请参考

http://zhidao.baidu.com/question/141093343.html

 

http://www.excelperfect.com/index.php/2010/05/06/askuserenablemacros/


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


代码解析:
第2行到第10行代码是工作簿的BeforeClose事件过程,在工作簿关闭前隐藏除“空白”表以外的所有的工作表。
第3行代码将“空白”表的Visible属性设置为True,使其可见。
应用于Charts和Worksheets对象的Visible属性决定对象是否可见,语法如下:
expression.Visible
参数expression是必需的,该表达式返回上面的对象之一。
Visible属性可以设置为表格 28 1所示的XlSheetVisibility常量之一。
常量 值 描述
xlSheetHidden 0 隐藏对象,可以通过“格式”→“工作表”→“取消隐藏”菜单使对象重新可见,等同于设置为False。
xlSheetVisible -1 使对象重新可见,等同于设置为True。
xlSheetVeryHidden 2 隐藏对象,使该对象重新可见的唯一方法是将此属性设置为True或xlSheetVisible。
表格 28 1 XlSheetVisibility常量
第4行到第8行代码使用For Each...Next语句遍历工作簿中所有的工作表,将除“空白”表以外的所有工作表的Visible属性设置为xlSheetVeryHidden,使之隐藏。
Visible属性设置为xlSheetVeryHidden后工作表不能通过“格式”→“工作表”→“取消隐藏”菜单来显示隐藏的工作表。
第9行代码使用Save方法保存代码所在工作簿的更改,在关闭工作簿时不显示消息框。

第10行到第18行代码是工作簿的Open事件过程,在打开工作簿时将除“空白”表以外的所有工作表的Visible属性设置为xlSheetVisible,取消隐藏。如果打开工作簿时禁用宏,则工作簿中除了“空白”表以外,其他的工作表还处于深度隐藏的状态,如图 28 2所示,这样就达到强制用户启用宏的效果,当然这还需要VBA工程保护的配合。

推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式