• Курсы Академии Кодебай, стартующие в мае - июне, от команды The Codeby

    1. Цифровая криминалистика и реагирование на инциденты
    2. ОС Linux (DFIR) Старт: 16 мая
    3. Анализ фишинговых атак Старт: 16 мая Устройства для тестирования на проникновение Старт: 16 мая

    Скидки до 10%

    Полный список ближайших курсов ...

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

maliy

Green Team
20.03.2007
180
2
BIT
67
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 354
151
BIT
230
Не пробовали в Excel включить запись макросов, вставить гиперссылку, остановить запись и посмотреть код макроса?
 

maliy

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

savl

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

savl

Lotus Team
28.10.2011
2 612
313
BIT
349
И вообще, программно гиперссылки делаются иначе:
Сначала нужно получить ячейку или 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
67
Visual Basic:
Set range = ExcelSheet.Cells(2,1)
Call range.Hyperlinks.add(range, <link>, <подсказка>, <текст для отображения>)
Это сработало. Подобное делал . но без Call
 
Мы в соцсетях:

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