target
в вашем случае имеет тип Hyperlink
и не имеет свойства Range
.Он имеет свойство Address
и SubAddress
- если Гиперссылка указывает на место в той же книге, вы найдете адрес в target.SubAddress
- однако это строка, а не Range
.
Когда вы устанавливаете адрес назначения для самой ячейки, вы можете использовать ActiveCell.Row
, чтобы получить строку - обратите внимание, что, когда адрес указывает на другое место, Excel сначала переходит на это место и выполняеткод после.
Чтобы установить Гиперссылки, используйте код Gary's Student
(я собирался опубликовать то же самое).
Ваше предложение "Позже я обнаружил, что функции не могут вызывать другие макросы и могуттолько возвращаемые значения " не имеет смысла для меня - у вас есть подпрограмма события, которая является Sub
(не Function
).Кроме того, вы можете вызывать любую другую подпрограмму как из функции, так и из подпрограммы.
Общий вопрос заключается в том, не лучше ли использовать другие события рабочей таблицы, например Worksheet_BeforeRightClick
или Worksheet_BeforeDoubleClick
- там у вас есть Range
в качестве цели и не нужно взорвать ваш лист с 60K гиперссылок