超链接到一个单元格?
我想检索超链接到Excel中的单元格,然后将此超链接粘贴到第三方应用程序中。 单击超链接应加载Excel与相应的工作簿,该单元格应该用光标select。
该超链接应该可以在像OneNote这样的Microsoft相关产品中使用; 例如,如果我有一个工作簿“D:\ abc.xls”,并且想要跳转到单元格C12,则会创build一个超链接,如“D:\ abc.xls#C12”。
而这将工作; 但是,如果我将其粘贴到非Microsoft应用程序中,则只会打开Excel和工作簿,但单元格不会突出显示。 我怎样才能使这个工作?
RE评论
这就是我所build议的,例如将以下内容保存为.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
或使用
<a href="xlopen://c:\null\test.xlsx#Q50">bla bla</a>
Windows将查找xlopen://
并将stringxlopen://c:\null\test.xlsx/#Q50
test.xlsx xlopen://c:\null\test.xlsx/#Q50
传递给XLOPEN.VBS,该文件将提取文件pathc:\null\test.xlsx1
test.xlsx1并将其打开,然后select范围在#之后。
如果在浏览器/从shell /通过Windows API中调用,这是行不通的,不知道它是否会在第三方应用程序。 (你会用helperreplace脚本)
这必须由Office应用程序自动完成,path为: abc.xls#C12
作为一个整体是一个潜在的有效文件名 – 如果你试图从shell运行它,你会得到一个“找不到path”的错误。
如果在onenote中单击该链接并查看命令行,那么将打开excel的结果实例,只有“-embedding”开关可能意味着onenote正在parsingabc.xls
,通过自动化function启动excel,然后激活C12
。
我想如果你想要的function,你需要使用助手应用程序做同样的事情,并使用像“ C:\your_XL_loader.exe D:\abc.xls#C12
”的path。
(如果第三方应用程序承认Windows协议handers使它的自我与XXX://abc.xls#C12
类的东西关联它的XXX://abc.xls#C12
)