超链接到一个单元格?

我想检索超链接到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