2016-07-19 53 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

相關問題