Ячейка в Excel как гиперссылка

maliy

Green Team
20.03.2007
180
2
BIT
76
x$=""& doc.NotesURL &""
s1$="=ГИПЕРССЫЛКА("""&x$&"""" & ";"& """ссылка""" & ")"
s2$="=ГИПЕРССЫЛКА("""&x$&"""" & """ссылка""" & ")"

xlWbk.ActiveSheet.Cells(1,1).Formula=s1$
собственно мне нужно сформировать строку s1 и записать ее , но выводит "OLE: Automation object error"
Если s2 , то мне в формуле не хватает точки с запятой(;) и ячейка не получается как гиперссылка. Если потом вручную добавляю в ячейке ; то ячейка становится гиперсылкой.
Как при выводе данных в Excel ячейку сделать гиперссылкой??
 

garrick

Lotus Team
26.10.2009
1 367
152
BIT
364
Не пробовали в Excel включить запись макросов, вставить гиперссылку, остановить запись и посмотреть код макроса?
 

maliy

Green Team
20.03.2007
180
2
BIT
76
Не пробовали в Excel включить запись макросов, вставить гиперссылку, остановить запись и посмотреть код макроса?
я файл excel готовлю на лету Set xl=CreateObject("Excel.Application"). хотелось бы решить вопрос "на лету" а не использовать какой то готовый файл с макросом и заполнять его.
 

savl

Lotus Team
28.10.2011
2 624
314
BIT
541
я файл excel готовлю на лету Set xl=CreateObject("Excel.Application"). хотелось бы решить вопрос "на лету" а не использовать какой то готовый файл с макросом и заполнять его.
речь не об использовании готового файла с макросом.
В Excel есть возможно "записи" макроса, то есть включается запись, делается манипуляция руками внутри окна, затем запись останавливается.
Это всё сохраняется как отдельный макрос VBA, его можно потом посмотреть глазами, там будет код, который можно спокойно перенести на LS и использовать так же "на лету".
Это самый простой способ.
и насколько я помню, ограничение на 65к гиперссылок на одном листе еще осталось, так что внимательнее с объемами.
 

savl

Lotus Team
28.10.2011
2 624
314
BIT
541
И вообще, программно гиперссылки делаются иначе:
Сначала нужно получить ячейку или range, а потому уже туда добавлять гиперссылку.

Visual Basic:
Set range = ExcelSheet.Cells(2,1)
Call range.Hyperlinks.add(range, <link>, <подсказка>, <текст для отображения>)
 
  • Нравится
Реакции: maliy

maliy

Green Team
20.03.2007
180
2
BIT
76
Visual Basic:
Set range = ExcelSheet.Cells(2,1)
Call range.Hyperlinks.add(range, <link>, <подсказка>, <текст для отображения>)
Это сработало. Подобное делал . но без Call
 
Мы в соцсетях:

Обучение наступательной кибербезопасности в игровой форме. Начать игру!