从另一个脚本调用Excel工作簿方法失败

时间:2016-06-30 11:39:16

标签: excel-vba powershell vbscript vba excel

我创建了两个脚本,第一个脚本(PowerShell脚本)位于本地计算机上并使用参数调用第二个脚本(VBScript)创建一个保存在本地计算机上的Excel文件,其中一个是很奇怪,因为当我直接在服务器上执行le VBScript(测试的“默认”参数)时,Excel文件完美地创建并填充在我的本地机器上,但当我使用PowerShell脚本时(即使没有发送参数并让它我有这个错误:

C:\MyScript.vbs(136, 2) Microsoft Excel: Method 'SaveAs' of object'_Workbook'
failed.
    + CategoryInfo          : NotSpecified: (C:\MyScript...kbook a ‚chou‚.:String) [], RemoteException
    + FullyQualifiedErrorId : NativeCommandError

以下是我的PS脚本发送的参数,第一个是本地计算机上用户的当前用户名,另外两个是使用DSN连接到Access数据库的登录信息:

Dim UID, PWD, User
'User = "Test"
'UID = "Test UID"
'PWD = "Test PWD"
User = WScript.Arguments(0)
UID = WScript.Arguments(1)
PWD = WScript.Arguments(2)

然后是文件名和路径,我用DFS路径传输它:

Dim fileName
filename = "\\group\dfs\Users\" & User & "\MyExcel.xlsx"

问题,在脚本结束后,在记录集中复制SQL查询的结果,然后在Excel文件中:

If Not objFSO.FileExists(fileName) Then
    workBook.SaveAs fileName
Else
    workBook.Save
End If

第136行是“SaveAs”行。

我真的不明白为什么它在我直接在服务器上执行时有效,但在PowerShell中使用Invoke-Command时却不行。我检查了语法,但一切都很好,我确定我在PS中写了好的参数,一切都是正确的,但它不起作用。

编辑:当我在参数中提到文件名时,似乎没有任何工作簿方法有效,我认为在PS和VBS之间的通话期间会发生一些变化。

0 个答案:

没有答案