这是我第一次使用VB。我习惯于自动化Excel宏,但由于文件名之间的间距而失败了。如果空间被移除,它工作正常。我读了这个post并使用双引号方法但没有用。
这就是我使用它objExcel.Application.Run "'"C:\Users\account\Desktop\test Folder\vbsExcel.xlsm"'!test.getValue"
但是获得
预期结束声明
为错误。我想我用错了方法。
示例路径
objExcel.Application.Run "'C:\Users\account\Desktop\test Folder\vbsExcel.xlsm'!test.getValue"
有效的路径 - 删除文件夹名称中的空格
objExcel.Application.Run "'"C:\Users\account\Desktop\testFolder\vbsExcel.xlsm"'!test.getValue"
试过
objExcel.Application.Run "'C:\Users\account\Desktop\test" + " " + "Folder\vbsExcel.xlsm'!test.getValue"
对于我尝试的内容,它部分有效,因为vbs
确实运行了宏。但是,Excel文件正在打开,仅在启用宏时才起作用。 (如果使用示例路径运行,则会发生同样的事情)
我的最终目标是使用示例路径在Excel 中运行宏而不打开excel 文件。 (只是意味着允许文件名中的空格)
完整脚本
Set objExcel = CreateObject("Excel.Application")
objExcel.Application.Run "'C:\Users\account\Desktop\testFolder\vbsExcel.xlsm'!test.getValue"
objExcel.DisplayAlerts = False
objExcel.Application.Quit
Set objExcel = Nothing
答案 0 :(得分:1)
间距没有问题。我设法通过向我的宏添加Application.DisplayAlerts = False
来解决我的问题。
运行vbS时,这将关闭警告消息启用宏。
这是msdn
如果Microsoft Excel在显示某些警报和消息时显示为真 宏正在运行。读/写布尔
答案 1 :(得分:-1)
阅读您引用的页面,尝试以下选项:
.Run """'C:\Users\account\Desktop\testFolder\vbsExcel.xlsm'""" & "!test.getValue"
.Run """C:\Path\Filename""" & "!test.getValue"
.Run """'C:\Path\Filename'!test.getValue"""
他们可能正在谈论“用双引号括起路径”......因为vba使用以下内容:
MsgBox "String" 'Will display: String
MsgBox ""String"" 'Will be in error
MsgBox "" & "String" & "" 'Will display String
MsgBox """String""" 'Will display "String"
MsgBox """"String"""" 'Will be in error
MsgBox """" & "String" & """" 'Will display "String"