0
commdt
17.06.15
✎
10:15
|
Добрый день!
Стоит задача при создании прайса в Excel методом ole automation добавить оглавление со ссылками на ячейки, находящиеся на другом листе того же прайса. Теперь к сути:
Синтаксис:
Worksheet.Hyperlinks.Add(Anchor, Address, SubAddress, ScreenTip, TextToDisplay)
Для внешней гиперссылки используется второй параметр, здесь всё просто, но вот если попытаться воткнуть туда адрес другой ячейки, то он пытается слепить абсолютный адрес на диске к файлу с названием ячейки, а нам нужен относительный адрес на другую ячейку на соседнем листе той же книги. Смотрим синтаксис VBA:
WorkSheet.Hyperlinks.Add
Anchor:= ИсходнаяЯчейка,
Address:="",
SubAddress:= ЦелевойДиапазон
По идее это приводит нас к следующему коду:
ЯчейкаОглавления = ЛистОглавления.Cells(1, 1);
ЯчейкаАдреса = ЛистПрайса.Cells(1, 1);
Адрес = ЛистПрайса.Range(ЯчейкаАдреса, ЯчейкаАдреса);
ЛистОглавления.Hyperlinks.Add(ЯчейкаОглавления,"",Адрес);
Однако, этот код вываливается с ошибкой "Ошибка при вызове метода контекста (Add)". То же самое происходит, если поставить в субадрес не диапазон, а конкретную ячейку
(Подключение к экселю, переменные с именами листов и т.д. - в порядке. Т.к. пока я не поставил адрес ячейки в 3-й параметр прайс благополучно формировался, правда с бесполезными ссылками)
|
|
1
commdt
17.06.15
✎
11:06
|
А, впрочем, сработало так:
ЛистОглавления.Hyperlinks.Add(Ячейка,"","Прайс!R" + НомерСтроки + "C1");
И чёрт с ним
|
|