2016-05-13 208 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

是的,看起来像问题,我需要用其他东西替换交叉部分,但是什么? –

相关问题