Vba 使用vbs脚本从批处理文件将数据提取到Excel中
我有一个批处理文件,它运行一组SQL查询并将数据加载到表中 我已经为excel中的按钮单击编写了VBA脚本,以从上表检索数据 但是现在我的要求已经改变,不用点击按钮就可以将数据填充到excel中。此外,我不希望我的代码出现在工作簿打开事件中 我必须将vba代码更改为.vbs脚本,以便可以从批处理文件调用它。 请帮帮我。如果我的方法有误,请纠正我。编写一个VBscript: 击球Vba 使用vbs脚本从批处理文件将数据提取到Excel中,vba,excel,batch-file,vbscript,Vba,Excel,Batch File,Vbscript,我有一个批处理文件,它运行一组SQL查询并将数据加载到表中 我已经为excel中的按钮单击编写了VBA脚本,以从上表检索数据 但是现在我的要求已经改变,不用点击按钮就可以将数据填充到excel中。此外,我不希望我的代码出现在工作簿打开事件中 我必须将vba代码更改为.vbs脚本,以便可以从批处理文件调用它。 请帮帮我。如果我的方法有误,请纠正我。编写一个VBscript: 击球 shell.Run """C:\...\my.bat""" 然后执行宏(下面的示例) 为什么不改用Excel数据表:
shell.Run """C:\...\my.bat"""
然后执行宏(下面的示例)
为什么不改用Excel数据表:我的Excel没有用数据更新。但是,宏正在正确运行。我从bat文件调用了vbs。您需要添加一行来保存Excel文件-上面的代码只执行宏,我将Excel文件保存为.xlsm,每次打开它时,我都必须启用内容。这也是通过脚本打开文件时出现的问题吗?请改用SaveAs,或者提高信任级别,这样警告(启用宏)就不会出现-对此不确定,但值得一试确定。SaveAs是否有效,或者您是否也必须更改信任级别?
RunMacro
Sub RunMacro()
Dim xl
Dim xlBook
Dim sCurPath
path = CreateObject("Scripting.FileSystemObject").GetAbsolutePathName(".")
Set xl = CreateObject("Excel.application")
Set xlBook = xl.Workbooks.Open(path & "\Workbook.xlsm", 0, True)
xl.Application.Visible = False
xl.DisplayAlerts = False
xl.Application.run "Workbook.xlsm!Module.RunMacro"
xl.ActiveWindow.close
xl.Quit
Set xlBook = Nothing
Set xl = Nothing
End Sub