2017-09-15 79 views
1

我有兩個工作表。 Sheet1具有工單的列表(A列),Sheet2具有根據工單購買的物料編號列表。 Sheet1中只有一個工單,但可以有多個物料編號鏈接到一個工單。單擊指向另一個工作表的超鏈接時運行宏

Sheet2看起來像這樣;

ColumnA ColumnB

Order1 Material1

Order1材料2

Order2 Material1

Order3 Material1

我有一次工單號被點擊超鏈接,VLOOKUP組合Sheet1它將在列出材料的Sheet2中轉到相同的工單號。

現在我想在單擊超鏈接後運行宏,以便將Sheet2過濾爲僅顯示針對該工作訂單購買的材料。我嘗試了以下不起作用的內容。請幫忙!

Private Sub Worksheet_FollowHyperlink(ByVal Target As Hyperlink) 
    MsgBox "Run Code" 
End Sub 
+0

有一個叫Worksheet_SelectionChange事件,但我沒有足夠的熟悉它提供一個完整的答案,但我認爲這是你需要的 – Moacir

+0

你能提供你的工作表中設置超鏈接單元格的快照嗎? – Zac

+0

= HYPERLINK(「#」&地址(MATCH(M2,Sheet2!A:A),2 ,,,「Goods Movement」),IFERROR(VLOOKUP(M2,Sheet2!A:M,2,FALSE),「」) ) – Francoiswc

回答

0

,你有問題的是,FollowHyperlink不觸發計算超鏈接(即不是一個靜態的超鏈接,但通過HYPERLINK函數生成)。您可以通過使用SelectionChange事件並測試超鏈接來解決此問題。這將需要插入到表對象

Private Sub Worksheet_SelectionChange(ByVal Target As Range) 
    Dim linkAddress As String 
    On Error Resume Next 
    linkAddress = Target.Hyperlinks(1).SubAddress 
    On Error GoTo 0 
    If linkAddress = vbNullString Then 
     MsgBox "Run Code" 
    End If 
End Sub 

或使用我的評論標記爲重複的解決方案

+0

問題是,每當您在工作表上選擇新的東西時,都會觸發宏。如果選擇鏈接到同一工作表上的單元格的超鏈接,則「SheetFollowHyperlink」有效。但是如果在超鏈接指向另一張紙時沒有辦法讓它工作,那麼我將不得不尋找另一種方式。 – Francoiswc

+0

是的,這就是這個事件旨在做的事情,我明白,但是這測試了超鏈接,如果沒有一個它退出。它不是一個真正的大交易,並且更容易靜態編程所有超鏈接或尋找解決方法。或者,您可以在帖子中使用解決方案我鏈接到您使用中間附加列的地方 – Tom

+0

如果您擔心它會經常觸發,則可以使用'Workbook_SheetActivate'。當您的超級鏈接將您帶到不同的工作表中時,只會在激活工作表時觸發。您可以在那裏使用@Tom代碼,以確保它僅在超鏈接單元格中觸發 – Zac

相關問題