AXForum  
Вернуться   AXForum > Microsoft Dynamics NAV > NAV: Программирование
All
Забыли пароль?
Зарегистрироваться Правила Справка Пользователи Сообщения за день Поиск

 
 
Опции темы Поиск в этой теме Опции просмотра
Старый 27.05.2013, 22:20   #1  
Sancho is offline
Sancho
Administrator
Аватар для Sancho
Лучший по профессии 2017
Лучший по профессии 2009
 
1,294 / 221 (10) ++++++
Регистрация: 11.01.2006
здрасьте!
очень хочется добавить ссылочку в ячейке Excel на другие ячейки.
код VBA вот такой:

ActiveSheet.Hyperlinks.Add Anchor:=Selection, Address:="", SubAddress:= "Лист1!B17:B24"

начинаю рисовать в навике, получаю примерно такую конструкцию:

xlWorkSheet.Hyperlinks.Add(xlWorkSheet.Range('A1'), 'Лист1!B17:B24');
компилячится, но не работает.

ибо Add не равен Add Anchor печалька.

поможите кто чем может?
Старый 28.05.2013, 08:36   #2  
rmv is offline
rmv
Участник
 
481 / 11 (1) +
Регистрация: 15.02.2005
Такой код вполне работает:
xlReportSheet.Hyperlinks.Add(xlRange, pWithLink, '', '', pWithText);
Старый 28.05.2013, 11:31   #3  
Sancho is offline
Sancho
Administrator
Аватар для Sancho
Лучший по профессии 2017
Лучший по профессии 2009
 
1,294 / 221 (10) ++++++
Регистрация: 11.01.2006
попробовал, с первого раза не полетело.
pWithLink и pWithText это текстовые переменные? во первой ссылка, во второй что?
Старый 28.05.2013, 13:29   #4  
rmv is offline
rmv
Участник
 
481 / 11 (1) +
Регистрация: 15.02.2005
Первая - ссылка, вторая - текст который показывается в ячейке
Старый 28.05.2013, 21:29   #5  
Sancho is offline
Sancho
Administrator
Аватар для Sancho
Лучший по профессии 2017
Лучший по профессии 2009
 
1,294 / 221 (10) ++++++
Регистрация: 11.01.2006
xlWorkSheet.Hyperlinks.Add(xlWorkSheet.Range('A1'), 'Лист1!B17:B24', '','','ура!');




Это сообщение для C/AL программистов:

Не удалось вызвать функцию Add. Компонент OLE или сервер Automation вернул следующее
сообщение:
Требуемая функция не существует, или вызов пытается присвоить значение
свойству, которое не изменяется.

понять бы, про какую функцию или свойство он говорит...
Старый 29.05.2013, 09:34   #6  
InTacto is offline
InTacto
Участник
Аватар для InTacto
 
323 / 11 (1) +
Регистрация: 09.08.2005
У меня получилось так:
Код:
CREATE(xlApp,TRUE);
xlWrkbook := xlApp.Workbooks.Add;

xlWrksheet := xlWrkbook.ActiveSheet;

Hypers := xlWrksheet.Hyperlinks;
Hypers.Add(xlWrksheet.Range('A1'),'', 'Лист1!B17', '','Ура!');

xlApp.Visible(TRUE);

Name	DataType	Subtype	Length
xlApp	Automation	Unknown Automation Server.Application	
xlWrksheet	Automation	Unknown Automation Server.Worksheet	
xlWrkbook	Automation	Unknown Automation Server.Workbook	
Hypers	Automation	'Microsoft Excel 12.0 Object Library'.Hyperlinks
Кстати, второй параметр это путь до файла, адрес внутри файла - 3 параметр
Старый 29.05.2013, 10:49   #7  
Sancho is offline
Sancho
Administrator
Аватар для Sancho
Лучший по профессии 2017
Лучший по профессии 2009
 
1,294 / 221 (10) ++++++
Регистрация: 11.01.2006
ура!

xlWorkSheet.Hyperlinks.Add(xlWorkSheet.Range('A1'), '', 'Лист1!B17:B24', '', 'test 0');

не работает!

но!
если мы заменим какую-то часть на переменную, то начинает работать!
причем заменить можно как xlWorkSheet.Hyperlinks, так и xlWorkSheet.Range!!!

оба примера ниже - работающие:

_Hyp := xlWorkSheet.Hyperlinks;
_Hyp.Add(xlWorkSheet.Range('A2'), '', 'Лист1!B17:B24', '', 'test 1');

_Range := xlWorkSheet.Range('A3');
xlWorkSheet.Hyperlinks.Add(_Range, '', 'Лист1!B17:B24', '', 'test 2');


спасибо rmv, InTacto, Quattro!!!
 


Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.
Быстрый переход

Рейтинг@Mail.ru
Часовой пояс GMT +3, время: 17:20.