Используя Excel 2010, в каждой строке я хотел бы создать гиперссылку в столбце G.
Этот столбец уже содержит информацию, которая будет использоваться в качестве отображаемого текста (или понятного имени) гиперссылки.
Чтобы гиперссылка указывала на правильное место, ей нужно число, которое содержит столбец M. Совпадающая информация всегда находится в одной и той же строке.
Таким образом, это может быть просто слияние двух битов информации в двух ячейках определенной строки.
Вот с чего я начал:
Sub Macro2()
'
' Macro2 Macro
'
Dim Name As String
Dim Branch As String
' Combination of two rows
Dim CombineRow As Range
Dim cell As Range
Dim row As Range
Dim Branch_ID As Range
Set Branch_ID = Worksheets("Default").Range("M2")
Set CombineRow = Range("G2:M2")
For Each row In CombineRow.Rows
For Each cell In row.Cells
Branch = Branch_ID.Cells.Value
Name = Name_ID.Cells.Value
ActiveSheet.Hyperlinks.Add Anchor:=Selection, Address:= _
"https://www.example.com/", SubAddress:= _
"something:", _
TextToDisplay:=Name
Next cell
' relative one row down
Set Branch_ID = Branch_ID.Offset(1, 0)
Set Name_ID = Branch_ID.Offset(1, 0)
Next row
End Sub
Чего я не знаю, так это как прикрепить значение столбца M (например, 600021610
) к концу гиперссылки?
Я на правильном пути здесь?
РЕДАКТИРОВАТЬ:
То, что у меня есть сейчас, это:
Sub Macro2()
'
' Macro2 Macro
'
Dim Branch As String
Dim Name As String
' combine two rows
Dim CombineRow As Range
Dim cell As Range
Dim row As Range
Dim Branch_ID As Range
Dim Name_ID As Range
Set Branch_ID = Worksheets("Default").Range("M2")
Set Name_ID = Worksheets("Default").Range("G2")
Set CombineRow = Range("G2:M2")
For Each row In CombineRow.Rows
For Each cell In row.Cells
Branch = Branch_ID.Cells.Value
Name = Name_ID.Cells.Value
ActiveSheet.Hyperlinks.Add Anchor:=Name_ID, Address:= _
"https://www.example.com/", SubAddress:= _
"something" & Branch, _
TextToDisplay:=Name
Next cell
Set Branch_ID = Branch_ID.Offset(1, 0)
Set Name_ID = Name_ID.Offset(1, 0)
Next row
End Sub
Это работает, но только для первой строки. Почему не делает петли? Действительно ли CombineRow
правильно, или это должно быть так: G:G;M:M
или что-то подобное?
Я также мог представить себе использование цикла Do ... While
, потому что вставка end_tag
не будет проблемой.