2016-05-13 299 views
1

我已經瀏覽了尋找解決方案的論壇。基於另一個單元格值的超鏈接單元格

我有一個基於列B單元格值創建超鏈接的代碼。它的作品,但只有當我運行子選擇單元格時。

我需要的是如果H列的值的小區是「OK」

Sub Hyperlinks() 

Dim r As Range 
Dim FilePath As String 

If Intersect(Columns("B"), Selection) Is Nothing Then Exit Sub 

For Each r In Intersect(Selection, Range("B2:B" & _ 
Cells(Rows.Count, "B").End(xlUp).Row)) 
If r <> vbNullString Then 

FilePath = "T:\BLUEMAC\Search Paths\PDF MASTER FOLDER\" 

ActiveSheet.Hyperlinks.Add Anchor:=r, _ 
Address:=FilePath & r.Value & ".pdf", TextToDisplay:=r.Value 
End If 
Next r 

End Sub 

任何幫助,將不勝感激即可自動添加超鏈接。

回答

1

變化

If Intersect(Columns("B"), Selection) Is Nothing Then Exit Sub 

For Each r In Intersect(Selection, Range("B2:B" & _ 
Cells(Rows.Count, "B").End(xlUp).Row)) 

For Each r In Range("B2:B" & Cells(Rows.Count, "B").End(xlUp).Row) 

而且

ActiveSheet.Hyperlinks.Add Anchor:=r, _ 
Address:=FilePath & r.Value & ".pdf", TextToDisplay:=r.Value 

If r.offset(0,6).value = "ok" then ActiveSheet.Hyperlinks.Add Anchor:=r, _ 
Address:=FilePath & r.Value & ".pdf", TextToDisplay:=r.Value 
+0

@JamesHurst不要忘記標記爲答案,如果它有幫助左手邊) –

+0

Jochen你一直是一個巨大的幫助,你可能看看我有另一個問題嗎? http://stackoverflow.com/questions/37219465/join-cells-based-on-value-of-a-cell-vba –

0

是否這樣?

Sub Hyperlinks() 

Dim r As Range 
Dim FilePath As String 

If Intersect(Columns("B"), Selection) Is Nothing Then Exit Sub 

For Each r In Intersect(Selection, Range("B2:B" & Cells(Rows.Count, "B").End(xlUp).Row)) 
    If r <> vbNullString And LCase$(r.Offset(0, 6).value) = "ok" Then 
     FilePath = "T:\BLUEMAC\Search Paths\PDF MASTER FOLDER\" 
     ActiveSheet.Hyperlinks.Add Anchor:=r, _ 
      Address:=FilePath & r.Value & ".pdf", TextToDisplay:=r.Value 
    End If 
Next r 

End Sub 
+0

我認爲James需要的代碼不依賴'Selection' –

+0

這是行得通的,但它仍然只在單元格被選中和子運行時才起作用。我怎麼能得到它自動通過列B中的每個單元格 –

+0

是的,看起來像問題,我需要用其他東西替換交叉部分,但是什麼? –

相關問題