【问题标题】:Inject and execute Excel VBA code into spreadsheet received from external source将 Excel VBA 代码注入并执行从外部源接收的电子表格
【发布时间】:2012-03-07 06:21:53
【问题描述】:

我想以编程方式(在 vbscript 或命令行或其他方式中)将 VBA 代码注入我从 FTP 站点获取的工作簿中,然后在工作簿上执行宏。全部自动化。没有用户交互。

我在文本文件中定义了 VBA 代码。

【问题讨论】:

  • 这个问题有点不清楚。您是否想要一个插入代码的宏(例如,在另一个工作簿或加载项中),或者您不知道如何访问 VBA 编辑器(Windows 上的 Alt-F11)。
  • 我在文本文件中定义了一个宏。我想以编程方式(在 vbscript 或命令行或其他方式中)将宏注入我从 FTP 站点获取的工作簿中,然后在工作簿上执行宏。全部自动化。没有用户交互
  • 您是否需要只执行一次宏(然后考虑使用 VBScript 自动执行任务),还是必须将其作为 .xls 的一部分,以便稍后多次执行(然后从[应用程序。]VBE)。
  • 只有一次。本质上它是一个文件转换,然后将结果上传到系统并完成。
  • 你想从 excel 中运行宏吗?还是您想要转换后的文件的最终结果?您可以将模块和过程注入到 excel 文件中,但如果您不想打开 excel,则没有理由。而且,如果您不介意使用 excel,那么在您的 personal.xls 中已经有一个可用的宏会更容易。哪个版本的电子表格?

标签: excel vbscript vba


【解决方案1】:

还没有机会尝试这个,但我认为这会满足我的需要。

Set objExcel = CreateObject("Excel.Application") 
objExcel.Visible = True 
objExcel.DisplayAlerts = False 
Set  objWorkbook = objExcel.Workbooks.Open("C:\scripts\test.xls") 
   Set xlmodule = objworkbook.VBProject.VBComponents.Add(1)  
   strCode = _ 
   "sub test()" & vbCr & _ 
   "   msgbox ""Inside the macro"" " & vbCr & _ 
   "end sub" 
   xlmodule.CodeModule.AddFromString strCode 
objWorkbook.SaveAs "c:\scripts\test.xls" 
objExcel.Quit 

【讨论】:

    猜你喜欢
    • 2019-03-06
    • 1970-01-01
    • 1970-01-01
    • 2011-10-13
    • 1970-01-01
    • 2013-06-28
    • 2011-12-14
    • 2011-11-15
    • 2013-06-15
    相关资源
    最近更新 更多