返回列表 上一主題 發帖

[發問] 使用事件程序開啟超連結(隱藏/顯示工作表)

[發問] 使用事件程序開啟超連結(隱藏/顯示工作表)

各位前輩好,
試寫附件,想做到的效果如下
工作表1(永遠顯示),裡面有工作表2!A1與工作表3!A1的超連結,點選超連結會到連到對應工作表的A1,
工作表2 & 3(隱藏,僅在點選工作表1後顯示)

工作表1使用事件程序
Private Sub Worksheet_FollowHyperlink(ByVal Target As Hyperlink)
達成點選超連結其對應的工作表變為顯示

工作表2 & 3使用事件程序
Private Sub Worksheet_Deactivate()
達成離開工作表即隱藏此工作表

遇到的問題如下
1.第一次點選工作表1的超連結,對應的工作表變為顯示但不會連到對應工作表的A1,要點第二次工作表1的超連結才會連到對應工作表的A1,能否達成僅點一次即完成顯示對應工作表&連到A1?
2.工作表2 & 3的coding,能否不指定名稱即判斷此工作表需隱藏?
sshot-12.jpg

謝謝
超連結.rar (14.48 KB)

回復 3# 准提部林
感謝回覆,獲益良多,修改了一下程式如附件 超連結.rar (14.65 KB)

現在遇到的問題是若工作表2 and 3為隱藏,第一次點選工作表1的連結會使工作表2 or 3變為顯示,但activesheet還是工作表1,第二次點工作表1的連結activesheet就會變為工作表2 or 3。

想要達成的效果是工作表2 and 3為隱藏,點選工作表1的連結則會使工作表2 or 3變為顯示且activesheet為工作表2 or 3。

若能達成此效果,應能避免下列問題
再者, 雖然工作2有
Private Sub Worksheet_Deactivate()
Me.Visible = False
End Sub

直接選取其它工作表, 工作表2會自動隱藏沒問題,
但若點A1超連結, 會跑到工作表1, 工作表2仍然是顯示的

TOP

回復  chiata

試試看:
准提部林 發表於 2019-7-18 19:21

感謝用心回覆,獲益良多,
幾個問題還想請教
  1. Private Sub Worksheet_FollowHyperlink(ByVal Target As Hyperlink)
  2. Dim SR
  3. If ActiveSheet.Name <> Me.Name Then Exit Sub
  4.    
  5.     With ActiveCell
  6.          If .Hyperlinks.Count = 0 Then Exit Sub
  7.          SR = Split(Replace(.Hyperlinks(1).SubAddress, "'", ""), "!")
  8.          If SR(0) = Me.Name Then Exit Sub
  9.          Sheets(SR(0)).Visible = True
  10.          Application.Goto Sheets(SR(0)).Range(SR(1))
  11.     End With
  12.    
  13. End Sub
複製代碼
ActiveCell.Hyperlinks.Count 應該是指此儲存格的超連結數量,若以儲存格來看,最多為1?
而此coding是點選超連結才會執行,故ActiveCell.Hyperlinks.Count=1?
那為何需要If .Hyperlinks.Count = 0 Then Exit Sub?

.Hyperlinks(1).SubAddress括號中的1是不是類似worksheets(1)?
若為worksheets("工作表1"),範圍中有2個超連結,該怎麼判斷Hyperlinks(1) & Hyperlinks(2)?

謝謝!

TOP

        靜思自在 : 人事的艱難與琢磨,就是一種考驗。
返回列表 上一主題