Гиперссылка к ячейке?

Я хочу получить гиперссылку к ячейке в Excel и затем вставить эту гиперссылку в приложении сторонних производителей. Нажатие на гиперссылку должно загрузить Excel соответствующей рабочей книгой, и та ячейка должна быть выбрана с курсором.

Гиперссылка должна работать в связанных с Microsoft продуктах как OneNote; например, если бы у меня есть рабочая книга "D:\abc.xls", и я хочу перейти к ячейке C12, я сделал бы гиперссылку как "D:\abc.xls#C12".

И это работало бы; однако, если я вставляю это в не-Microsoft applicaltion, она просто открывает Excel и рабочую книгу, но ячейка не выделяется. Как я могу заставить это работать?

1
задан Kevin Boyd 24 September 2010 в 18:12
поделиться

2 ответа

RE comment

Это то, что я предлагал, например, сохранить следующее как .reg и импортировать его

REGEDIT4

[HKEY_CLASSES_ROOT\XLOPEN]
@="URL:Excel Opener"
"URL Protocol"=""

[HKEY_CLASSES_ROOT\XLOPEN\shell\open\command]
@="CSCRIPT.EXE \"C:\\TEMP\\XLOPEN.VBS\" \"%1\""

Это делает XLOPEN:// обработчик протокола URL, который при вызове будет запускать XLOPEN.VBS.

Сохраните следующий файл как C:\TEMP\XLOPEN.VBS

rem //get an argument like "XLOPEN://C:\null\text.xlsx/#F55" note extra /
dim arg:  arg = WScript.Arguments.item(0)
dim arr:  arr = (split(ucase(arg), "#"))
rem unmangle the url
dim filename: filename = replace(arr(0), "XLOPEN://", "")
if (right(filename, 1) = "/") then filename = mid(filename, 1, len(filename)-1)
dim xl:   set xl = createobject("excel.application")
xl.Workbooks.Open filename 
xl.range(arr(1)).select
xl.visible = true

Теперь, если вы запустите

xlopen://c:\null\test.xlsx#Q50

или используете

bla bla

Windows найдет xlopen:// и передаст строку xlopen://c:\null\test.xlsx/#Q50 в XLOPEN.VBS, который извлекает путь к файлу c:\null\test.xlsx1 и открывает его, затем выбирает диапазон после #.

Это работает при вызове в браузере/из оболочки/через windows API, не знаю, будет ли это работать в стороннем приложении. (Вы замените скрипт на вспомогательный exe)

1
ответ дан 3 September 2019 в 00:51
поделиться

Это должно быть что-то автоматически сделанное приложениями Office в качестве пути: abc.xls # C12 в целом является потенциально допустимым имя файла - если вы попытаетесь запустить его из оболочки, вы получите ошибку «путь не найден».

Если вы щелкнете по этой ссылке в onenote и посмотрите на командную строку, получившийся экземпляр excel был открыт с переключателем «-embedding», что, вероятно, означает, что onenote разбирает abc.xls , запуск Excel с помощью функций автоматизации и активация C12 .

Я думаю, если вам нужна эта функциональность, вам нужно будет сделать то же самое с помощью вспомогательного приложения и использовать такие пути, как « C: \ your_XL_loader.exe D: \ abc.xls # C12 ».

(Если стороннее приложение соблюдает протокол Windows, то его тривиальная задача - заставить your_XL_loader.exe ассоциировать себя с чем-то вроде XXX: //abc.xls#C12 )

1
ответ дан 3 September 2019 в 00:51
поделиться
Другие вопросы по тегам:

Похожие вопросы: