Vba 使用vbs脚本从批处理文件将数据提取到Excel中

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数据表:

我有一个批处理文件,它运行一组SQL查询并将数据加载到表中

我已经为excel中的按钮单击编写了VBA脚本,以从上表检索数据

但是现在我的要求已经改变,不用点击按钮就可以将数据填充到excel中。此外,我不希望我的代码出现在工作簿打开事件中

我必须将vba代码更改为.vbs脚本,以便可以从批处理文件调用它。 请帮帮我。如果我的方法有误,请纠正我。

编写一个VBscript:

击球

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