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

+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

はい、問題のように見える、病気の交差部分を何か他のものと交換する必要がありますが、何ですか? –

関連する問題