2016-05-13 3 views
1

Я травил форумы в поисках решения.Гиперссылка на основе значения другой ячейки

У меня есть код для создания гиперссылки, основанный на значении столбца B. Он работает, но только в том случае, если я запускаю sub при выборе ячейки.

Что мне нужно для гиперссылкой, чтобы автоматически добавляется, если ячейка в значение столбца H является «ОК»

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

Йохен, вы оказали огромную помощь, возможно, вы можете взглянуть на другую проблему, с которой я сталкиваюсь? 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

Я думаю, что Джеймсу нужен код, который не зависит от 'Selection' –

+0

Это работает, но он работает только в том случае, если ячейка выбрана и подпрограмма. как я могу заставить его пройти через каждую ячейку в столбце B автоматически –

+0

Да, похоже, проблема, мне нужно заменить часть пересечения чем-то другим, но что? –

Смежные вопросы