我創建了VBA代碼,這樣我們公司的一羣人就可以用存儲在網絡驅動器上的Excel工作表中的唯一編號(本質上給出一個序列號)「印記」一個文檔文檔。這些人無法訪問上述網絡驅動器,但我希望他們能夠執行VBA代碼。如何使用vba訪問具有不同證書的網絡excel文件?
我一直在閱讀本網站上的各種文章和其他人在過去幾天,並能夠適應this post爲我工作。但是,如果我嘗試多次執行VBA代碼,則會得到原始答案中所述的「多個連接」錯誤。那麼,似乎映射的驅動器未被刪除。這是一個簡單的語法問題?或者我錯過了我的RemoveNetworkDrive
聲明中的某些內容?
ServerShare = "\\Servername\path"
UserName = "domain\username"
Password = "password"
Set NetworkObject = CreateObject("WScript.Network")
Set FSO = CreateObject("Scripting.FileSystemObject")
NetworkObject.MapNetworkDrive "", ServerShare, False, UserName, Password
str_WbPath = ServerShare & "\MRL Number Generator.xlsm"
Set exWb = objExcel.Workbooks.Open(str_WbPath)
'Do Stuff in excel
Set exWb = Nothing
Set FSO = Nothing
NetworkObject.RemoveNetworkDrive ServerShare, True, False
Set NetworkObject = Nothing
您是否在關閉網絡驅動器之前嘗試關閉excel工作簿?它可能不喜歡連接被強制關閉,文件仍然打開 – Rabbitman14
到機器的IPC $'會話可能仍然打開。嘗試刪除'\\ servername \ ipc $'以及。如果這不起作用,請參閱[關於SU的這個問題](http://serverfault.com/questions/451387/)及其相關問題以獲得更多靈感(但並非所有提議的解決方案都可能來自VB)。 'EnumNetworkDrives'也可能給你一個線索,確定這個移除是否真的失敗了。 –
@JeroenMostert一個很好的建議,但我得到一個「這個驅動器不存在」的錯誤。 –