我正在尝试从excel中的超链接取消隐藏工作表,但无法使其正常工作。
我一直希望只可见一张纸,并且我希望超链接位于合并的单元格中,而不仅仅是在常规单元格中。
当我单击未隐藏的子工作表上的后退按钮时,我希望起始页面可见。
例如我在开始页面上,并且单击到SubSheet1的链接,只有SubSheet1可见。我单击后退按钮,只有StartPage可见。
https://www.mrexcel.com/forum/excel-questions/976686-hyper-link-object-hidden-sheet.html
我在网上找到了以下代码:
Sub switchToSheet(fromSht As Worksheet, toShtName As String)
Dim sht As Worksheet
Set sht = ThisWorkbook.Worksheets(toShtName)
sht.Visible = xlSheetVisible
fromSht.Visible = xlSheetHidden
sht.Activate
sht.Range("B1").Select
End Sub
Sub allSheetsVisible()
Dim sht As Worksheet
For Each sht In ThisWorkbook.Worksheets
sht.Visible = xlSheetVisible
Next sht
End Sub
我把它放在一个模块中。
然后
我把它放进了这个工作簿
Private Sub Workbook_Open()
Dim sht As Worksheet
Const master As String = "Master"
With Me.Worksheets(master)
.Visible = xlSheetVisible
.Activate
.Range("B1").Select
End With
For Each sht In Me.Worksheets
If sht.Name <> master Then
sht.Visible = xlSheetHidden
End If
Next sht
End Sub
在我的起始页中,我有以下代码:
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
Dim adr As String
adr = Target.Address(0, 0)
Select Case adr
Case "A1"
switchToSheet Me, "Sub1"
Case "A2"
switchToSheet Me, "Sub2"
End Select
End Sub
在单元格A1和A2中有超链接的地方。但是,此代码不适用于合并的单元格!
答案 0 :(得分:0)
使用Shapes并右键单击为其分配宏,可能比使用超链接更好。
关于宏: 1.如果工作簿中工作表的名称是常量,那么您可以分配适当的宏来隐藏和取消隐藏工作表: a)取消隐藏:
Sub Unhide()
ActiveWorkbook.Worksheets("nameOfWs").Visible = True
End Sub
b)隐藏:
Sub Hide()
ActiveWorkbook.Worksheets("nameOfWs").Visible = xlSheetVeryHidden
End Sub
要使其更具动态性,您可以测试工作表是否包含某些东西,例如。 G。特定的颜色,单元格中的值等。然后,您可以使子项目更“巧妙”。 要遍历所有工作表,可以使用e。 g。:
Sub LoopAll()
将ws作为工作表
对于ActiveWorkbook.Worksheets中的每个ws '一些代码e。 G。根据Ifs隐藏/取消隐藏 下一个ws
结束子
现在,一切都掌握在您手中,以将活动代码与您所需的代码结合起来。