Excel(2010)超链接:如何使用命令行参数和路径中的空格来调用文件?

Excel(2010)超链接:如何使用命令行参数和路径中的空格来调用文件?

我正在处理一个 Excel 文档,以使(项目)文件夹结构易于管理,并使用HYPERLINKs 指向重要文件和文件夹(Word/Excel 等)。

由于我们也在使用 TFS,因此我想添加直接从 Excel 表内签出和签入的功能。一站式登陆和概览页面。

如果我只是有

=HYPERLINK("C:\work\TF.exe";"simple test")

我收到安全警告,但程序仍可执行。

最后,我想要的是

=HYPERLINK("C:\Program Files (x86)\Microsoft Visual Studio 10.0\Common7\TF.exe status $/MyProject/Documents /recursive";"Find local Check Outs in Document folder")

但是,这不适用于文件路径中的空格以及命令行参数。有没有办法在不使用 VB 的情况下运行它?即使我用引号括住超链接的部分(对于 Excel 使用双引号:“”->“)也没有任何改善,我收到“文件未找到”错误。

而且..仅当我必须使用 VB(我不喜欢安全警告)时,最好的方法是什么?

答案1

另一种方法是创建一个快捷方式,并在其中嵌入相关的命令行开关。然后您可以超链接到该快捷方式。请注意,该快捷方式的扩展名为 .lnk。

如果您想做比使用开关启动单个可执行文件更复杂的事情,您可以链接到批处理脚本(.bat)。

答案2

据我所知,HYPERLINK这样使用是不可能的 - 除非使用安东尼的巧妙技巧。

但是,只要路径用引号引起来,超链接中的空格就无关紧要。

为了解决这个问题,您可能必须使用 VBA,如果命令行参数必须是动态的,或者您由于其他原因不想使用 anthonys 方法。

这将是一种简洁快捷的方法:

Shell "C:\Program Files (x86)\Notepad++\notepad++.exe -notabbar", vbMaximizedFocus

或者使用您的代码:

public sub demo()
  Shell "C:\Program Files (x86)\Microsoft Visual Studio 10.0\Common7\TF.exe status $/MyProject/Documents /recursive"
end sub

顺便说一句 - 通过超链接执行文件时通常会出现警告,也应该出现警告。因此,如果您因为“不喜欢警告”而不想使用 HYPERLINK,那么您也会遇到警告 ;)

另一方面 - 如果您使用受信任的签名对工作簿进行签名或在文件夹中使用它,则 VBA 解决方案可以避免警告,而该文件夹被设置为对宏进行信任。

相关内容