2016-07-19 52 views
0

我有一个包含PC主机名列表的文件我希望能够通过单击单元格或按钮来连接到特定C的驱动器,或者一些东西。Excel VBA从单元格获取UNC并在explorer.exe中打开它

比方说,我目前在A列中的主机名我用CONCATENATE把它变成一个合适的网络路径\\主机名\ C $,并把在列B.现在

我怎么能做出这么我只需点击B列中的单元格即可在explorer.exe中打开该位置。 我有450台PC,所以我需要能够指定范围,将网络路径输入到VBA中,然后在explorer.exe中打开该文件。 这是否有意义? :P

真的,真的很感谢任何帮助。谢谢。

回答

1

将连接值包装在“超链接()”中。从此它可以点击并打开资源管理器。

=HYPERLINK(CONCATENATE("\\";A1;"\C$");A1) 

或者您将此代码放入工作表代码窗格中,然后双击您的链接所在的单元格。但是,你不能将它与HYPERLINK结合使用。

Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean) 
If Target.Column <> 2 Then Exit Sub 
Dim sh As Object 
Set sh = CreateObject("Wscript.Shell") 
sh.Run ("explorer " & Target.Value) 
Cancel = True 
End Sub 
+0

谢谢,我这样做,它只是说“无法打开指定的文件”。我知道链接是好的,因为我可以将它粘贴到“开始”>“运行”中,并且它可以正常连接。任何想法,为什么这可能是? – Alex

+0

那么你的链接如何,没有friendlyname属性? –

+0

好吧,我想通了,它不工作,因为我通常需要输入一个管理员密码连接到网络PC(对于当前的Windows会话,我猜)。一旦我通过开始>运行连接并输入用户名/密码,然后我可以从Excel文件连接到它,但不是在我这样做之前。有没有办法解决这个问题,还是没有办法做我想要的?我尝试以管理员身份运行Excel,但无法正常工作(实际上我需要以其他用户身份运行并输入我的域管理员密码) – Alex

相关问题