2015-06-08 91 views
1

我有一個具有2片材的工作簿。表1在表2鏈接到幾個不同的細胞中的問題是,有在表2,將隱藏行的過濾器,所以當您嘗試從第1頁跟蹤超鏈接,該行是隱藏的,你看不到的目標。我試圖找出如何做到以下幾點:超鏈接指示隱藏行

  • 在單擊超鏈接,確定表的目標行2
  • 如果目標行被隱藏,取消隱藏對象行中表2,然後按照超鏈接。

超鏈接後,它可以保持不隱藏,我很好。過去幾天我一直在努力,並沒有取得任何成功。我已經嘗試了「Followhyperlink」功能,但我認爲這太遲了 - 它已經遵循超鏈接,所以在這一點上取消隱藏行已經太晚了。

有什麼建議嗎?我很難過!

+0

你也許可以使用名爲沿着「on_click_hyperlink」線的東西的事件處理程序。對不起,我無法詳細瞭解,但您可以快速搜索「超鏈接事件」以獲取更多詳細信息。 – 314UnreadEmails

回答

1

FollowHyperlink確實是事件處理程序使用。把這個代碼工作表模塊中Sheet 1中:

Option Explicit 

Private Sub Worksheet_FollowHyperlink(ByVal Target As Hyperlink) 

Dim hyperlinkParts() As String 

If ((Target.Type = msoHyperlinkRange) And (Target.SubAddress <> "")) Then 
    If (InStr(Target.SubAddress, "!") > 0) Then 
     hyperlinkParts = Split(Target.SubAddress, "!") 

     If ((Left$(hyperlinkParts(0), 1) = "'") And (Right$(hyperlinkParts(0), 1) = "'")) Then 
      hyperlinkParts(0) = Mid$(hyperlinkParts(0), 2, Len(hyperlinkParts(0)) - 2) 
     End If 

     Worksheets(hyperlinkParts(0)).Range(hyperlinkParts(1)).EntireRow.Hidden = False 
    End If 
End If 

End Sub 

這將檢查該超鏈接對應於Range對象然後分割的目標地址到片材名稱和特定小區(一個或多個)。然後取消隱藏與目標地址對應的行。

的子地址是空的,需要超鏈接到未指定特定的細胞外部的工作簿的檢查

編輯:這種做法不會爲超鏈接工作,命名範圍,我已經改變了碼,以避免得到的錯誤消息與該類型的超鏈接

EDIT2的;代碼修改爲處理包含空格的工作表的名稱了以前導致錯誤

+0

感謝您的幫助!不幸的是,它給我一個運行時錯誤'9':下標超出範圍。 「工作表(超鏈接....)」行是罪魁禍首。超鏈接部分(0)指向正確的工作表,超鏈接部分(1)指向正確的行。我不確定什麼超出範圍。從邏輯上講,代碼完全有意義。如果您有任何進一步的想法,他們將不勝感激。 –

+0

錯誤發生時'hyperlinkParts(0)'和'hyperlinkParts(1)'的具體值是什麼?在Hyperlink.SubAddress文檔也不是很全面,因此有可能是子地址的一些具體的格式,我沒有佔 – barrowc

+0

「所有數據」(這是目標鏈接的表名稱)和H2684(的小區目標鏈接)。如果我點擊一個不同的鏈接(大約有一百個鏈接),那麼上面格式的正確地址就會出現。有21,233行數據。不知道這是否有所作爲? –