Гиперссылка VBA. Добавить к другой ячейке в том же рабочем листе - PullRequest
0 голосов
/ 03 марта 2020

Я хочу создать гиперссылку для каждого выноса, введенного на листе, и разместить все гиперссылки в динамическом диапазоне c ниже, где вводятся выносы.

A l oop вызывает следующий код, где "pkey" - это имя рабочего листа, который будет содержать триггер, обнаруженный макросом (который создает гиперссылку 1 на 1):

Public Sub Takeaways(ByVal ws As Worksheet, ByVal table As Range, ByVal pkey As String)

Dim Lastcolumn As Long
Dim takeawaylastrow As Long
Dim takeawayfirstrow As Range
Dim takeawaypasterange As Range
Dim takeaway_description As String

Lastcolumn = ws.Cells(table.row, Columns.count).End(xlToLeft).column
takeaway_description = ws.Cells(table.row, Lastcolumn)
Set takeawayfirstrow = ws.Range("Takeaways").Offset(0, 1)
takeawaylastrow = ws.Range("Takeaways").Offset(0, 1).End(xlDown).row
Set takeawaypasterange = ws.Cells(takeawaylastrow + 1, New_Meeting_Task_Columns.Trigger)

takeawaypasterange = takeaway_description

ThisWorkbook.Worksheets(pkey).Hyperlinks.Add Anchor:=ThisWorkbook.Worksheets(pkey) & "!" & Cells.takeawaypasterange.Address, Address:="", SubAddress:=ThisWorkbook.Worksheets(pkey).table(1, 1).Address, TextToDisplay:="Takeaway"

End sub

Последняя строка кода выдает ошибку «438, Object не поддерживает это свойство или метод», я пробовал жестко программировать вместо использования именованных диапазонов / переменных и провел время, просматривая другие гиперссылки. примеры при изменении формата моей строки ошибки, но я не могу заставить код работать.

Ваша помощь очень ценится!

1 Ответ

1 голос
/ 03 марта 2020

Я получил его на работу (dim temp как строка, а в формуле гиперссылки якорь: = takeawaypasterange и подадрес: = temp сделал свое дело)

Public Sub Takeaways(ByVal ws As Worksheet, ByVal table As Range, ByVal pkey As String)

Dim Lastcolumn As Long
Dim takeawaylastrow As Long
Dim takeawayfirstrow As Range
Dim takeawaypasterange As Range
Dim takeaway_description As String

dim temp as string

Lastcolumn = ws.Cells(table.row, Columns.count).End(xlToLeft).column
takeaway_description = ws.Cells(table.row, Lastcolumn)
Set takeawayfirstrow = ws.Range("Takeaways").Offset(0, 1)
takeawaylastrow = ws.Range("Takeaways").Offset(0, 1).End(xlDown).row
Set takeawaypasterange = ws.Cells(takeawaylastrow + 1, New_Meeting_Task_Columns.Trigger)

takeawaypasterange = takeaway_description
temp = table(1, 1).Address

ThisWorkbook.Worksheets(pkey).Hyperlinks.Add Anchor:=takeawaypasterange, _
Address:="", SubAddress:=temp, TextToDisplay:="testttttt"

End sub
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...