我正在处理一个 Excel 文档,以使(项目)文件夹结构易于管理,并使用HYPERLINK
s 指向重要文件和文件夹(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 解决方案可以避免警告,而该文件夹被设置为对宏进行信任。