Пусть есть рабочая книга Excel, содержащая множество листов. На первом листе с именем отладка в колонке 3 мне надо вставить гиперссылки на все листы в книге. Для создания гиперссылки воспользуемся сначала макрорекордером. Для этого поставим курсор в нужную ячейку третьего столбца первого листа книги Excel с именем Отладка.
Выполним команду Вставка – Гиперссылки -Место в документе и выберем, например, сначала Лист1, а затем Лист2. Получим такие две строки кода.
Range(“C3”).Select
ActiveSheet.Hyperlinks.Add Anchor:=Selection, Address:=””, SubAddress:= _
“Лист2!A1″, TextToDisplay:=”Лист2!A1″
Range(“C4”).Select
ActiveSheet.Hyperlinks.Add Anchor:=Selection, Address:=””, SubAddress:= _
“Лист3!A1″, TextToDisplay:=”Лист3!A1”
Range(“C5”).Select
ActiveSheet.Hyperlinks.Add Anchor:=Selection, Address:=””, SubAddress:= _
“‘Титульный лист’!A1″, TextToDisplay:=”‘Титульный лист’!A1”
В начале в команде создания гнперссылки идёт информация о листе, на котором формируется ссылка.
Activelist можно заменить на Sheets(“Отладка”) или даже Sheets(“Отладка”).cells(i,3), где i – номер строки при работе в цикле, а 3 – номер столбца.
Но обычно возникает две проблемы и, соответственно, две ошибки. Что такое Anchor и как быть, если наименование листа, на который строим гиперссылку, состоит из нескольких слов. В последнем случае название листа надо заключить в одиночные кавычки, а ссылку формировать через слияние с “!A1”.
Рассмотрим момент, связанный с якорем, т.е. Anchor. В макрорекордере он формируется как пустой типа Selection, т.к. при вставке ссылки макрорекордеру уже известна выделенная нами ячейка, куда помещается ссылка.
Мы же должны явно прописать якорь, куда помещается ссылка в виде
Sheets(“Отладка “).Hyperlinks.Add Anchor:=Sheets(“Отладка “).Cells(i, 3), Address:=””, SubAddress:= _
“‘” + Ssylka + “‘” + “!A1”, TextToDisplay:=Ssylka
Где Ssylka = Sheets(k).Name
Если же оставить якорь Selection, то ссылка разместится в первой незащищенной ячейке на выделенном листе, на который мы хотим установить гиперссылку.