注册 登录
编程论坛 VB6论坛

禁止宏隐藏非"空白"工作表如发实现?

VB白白 发布于 2023-05-05 16:25, 1049 次点击
为什么移动复制进新的工作表后,原来的禁止宏后隐藏"空白"工作表代码无法使用了?没移动或复制进新表的时候可以用,将移动复制进来的新表删除也无法实现隐藏功能了,求大神是什么问题呢?[quote][/quo
只有本站会员才能查看附件,请 登录
te]
4 回复
#2
阳光上的桥2023-05-05 17:17
一、上面代码应先显示名称为“空白”的工作表,还应该考虑如果没有这个表的时候怎么处理(可能需要添加一个表改名为“空白”),因为隐藏所有表会报错。

程序代码:

Dim sh as WorkSheet
On Error Resume Next
Set sh = Nothing
Set sh = Sheets("空白")
On Error Goto 0
If sh is Nothing Then
    Set sh = Sheets.Add
    sh.Name = "空白"
End If
sh.Visible = False


二、如果禁用了宏,这些代码都不会执行。

三,由于代码是在工作簿里面的,复制工作表到别的工作簿不会把宏带过去。
#3
东海ECS2023-05-05 19:08
把代码贴出来不要发图片
#4
VB白白2023-05-06 08:51
回复 2楼 阳光上的桥
我是把别的工作簿里的表复制移动到有这代码的工作簿里,里面也有空白表,单是不执行,原来没有新表移动进来的时候代码还能执行复制移动新表进来以后就不执行了,是不是表太多了还是哪里的问题呢?
#5
VB白白2023-05-06 09:03
回复 3楼 东海ECS


Private Sub Workbook_BeforeClose(Cancel As Boolean )
Sheet1.Uisible = True
For Each sh In ThisWorkbook.sheets
IF sh.Name<>"空白·Then
 sh.visible = x1SheetUeryHidden
End If
next
ActiveWorkbook.Saved=True
 End Sub

Private Sub Workbook Open()
For Each sh In ThisWorkbook Sheets
If sh.Name<>"空白"Then
sh Visible=xSheetVisible
End If
Next
Sheet1.visible =x1SheetVeryHidden
Application.isible-False隐藏工作薄
UserForm1.Show"打开登录窗体
End sub
请大神帮忙看看指点指点哪里出了问题,谢谢
1