RE комментарий
Это то, что я предлагал, например, сохранить следующее как .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\""
Это делает обработчик протокола URL XLOPEN://
, который при вызове будет запускать 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
или используйте
<a href="xlopen://c:\null\test.xlsx#Q50">bla bla</a>
Windows выполнит поиск xlopen://
и передаст строку xlopen://c:\null\test.xlsx/#Q50
в XLOPEN.VBS, которая извлечет путь к файлу c:\null\test.xlsx1
и откроет его, затем выберет диапазон после #.
Это работает, если вызывается в браузерах / из оболочки / через Windows API, не знаю, будет ли это работать в стороннем приложении. (Вы должны заменить скрипт на вспомогательный exe)