我试图用vbs调用我的excel宏.这是我的代码片段.
Set objExcel = CreateObject("Excel.Application")
Set objWorkbook = objExcel.Workbooks.Open("C:\Folder\Test_PO.xls")
objExcel.Application.Visible = True
objExcel.Application.Run "C:\Folder\Test_PO.xls!Data_Analysis"
objExcel.ActiveWorkbook.Close
objExcel.Application.Quit
WScript.Echo "Finished."
WScript.Quit
Run Code Online (Sandbox Code Playgroud)
现在问题是我能够打开文件,但宏以某种方式在这里被禁用并显示给我'macro may not be present or may be disabled'.我确定我正在调用正确的宏名称,但是一旦文件被打开,加载项选项卡我已经配置了宏来运行得到消失.如果我手动打开文件,这不会打开,我可以看到选项卡并从选项卡本身运行宏.有什么建议我如何克服这个问题并让宏运行?
试试这个
Dim objExcel, objWorkbook
Set objExcel = CreateObject("Excel.Application")
Set objWorkbook = objExcel.Workbooks.Open("C:\Folder\Test_PO.xls")
objExcel.Visible = True
objExcel.Run "Data_Analysis"
objWorkbook.Close
objExcel.Quit
Set objWorkbook = Nothing
Set objExcel = Nothing
WScript.Echo "Finished."
WScript.Quit
Run Code Online (Sandbox Code Playgroud)
编辑
如果宏在模块中,则上述内容将有所帮助.如果宏在工作表中说,Sheet1然后替换该行
objExcel.Run "Data_Analysis"
Run Code Online (Sandbox Code Playgroud)
同
objExcel.Run "sheet1.Data_Analysis"
Run Code Online (Sandbox Code Playgroud)
跟进
试试这个代码.
Dim objExcel, objWorkbook, ad, FilePath
Set objExcel = CreateObject("Excel.Application")
objExcel.Visible = True
For Each ad In objExcel.AddIns
If ad.Name = "Converteam.xla" Then
FilePath = ad.Path & "\Converteam.xla"
Exit For
End If
Next
objExcel.Workbooks.Open (FilePath)
Set objWorkbook = objExcel.Workbooks.Open("C:\Folder\Test_PO.xls")
objExcel.Run "Data_Analysis_Converteam"
objWorkbook.Close
objExcel.Quit
Set objWorkbook = Nothing
Set objExcel = Nothing
WScript.Echo "Finished."
WScript.Quit
Run Code Online (Sandbox Code Playgroud)
解释:
使用时CreateObject,默认情况下不会安装加载项.请看这个链接.
主题:在Excel中使用CreateObject命令时,不会加载加载项
链接:http://support.microsoft.com/kb/213489/
您必须加载加载项,然后调用相关的宏.此外,您的宏的名称不是Data_Analysis,但Data_Analysis_Converteam
HTH