如何使用vba访问具有不同凭据的网络Excel文件?

时间:2016-07-25 18:54:33

标签: excel vba excel-vba

我已经创建了VBA代码,这样我们公司的一群人就可以盖章"带有唯一编号的word文档,存储在网络驱动器上的Excel工作表中(实际上是一个序列号#)。这些人无权访问所述网络驱动器,但我希望他们能够执行VBA代码。

过去几天我一直在阅读本网站和其他人的各种文章,并且能够让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

1 个答案:

答案 0 :(得分:0)

我会告诉你我这对我有用。我使用了驱动器,而是移除了驱动器。

'This insures you find a empty drive letter
For i = 67 To 90
    netDrive = Chr(i) & ":"
    If Not fs.DriveExists(netDrive) Then Exit For
Next

'mount network drive on the above selected drive letter
Network.MapNetworkDrive netDrive, ServerShare, False, UserName, Password

'DO STUFF
'DO STUFF

'remove that drive letter
Network.RemoveNetworkDrive netDrive, True, True

我也会将删除文件放在一些错误处理上,否则如果你有一些错误,你就会产生一堆驱动程序。

相关问题