【问题标题】:VBS not running at allVBS 根本没有运行
【发布时间】:2016-06-15 22:44:27
【问题描述】:

我正在使用这个 vbscript 来触发宏以在 Excel 中运行而无需打开 Excel。

sub test()
Set fso = CreateObject("Scripting.FileSystemObject")
curDir = fso.GetAbsolutePathName(".")

Set myxlApplication = CreateObject("Excel.Application")
myxlApplication.Visible = False
Set myWorkBook = myxlApplication.Workbooks.Open("\\Mac\Home\Desktop\TEST.xlsm" ) 'Change to the actual workbook that has the Macro
myWorkBook.Application.Run "Module1.Macro1()" 'Change to the Module and Macro that contains your macro
myworkbook.save
myxlApplication.Quit
end sub

它没有像预期的那样工作,宏没有运行,即使我将代码更改为:

myWorkBook.Application.Run "Module1.Macro1()"

对于一些不存在的宏名称,这个 vbs 应该给我一个错误消息。但甚至没有出现错误消息。不知道为什么vbs没有运行,我只是双击vbs文件运行。

请再次注意, 即使我编码任何错误,它甚至不会给我任何错误消息。这很奇怪

【问题讨论】:

  • 你试过Call Macro1吗?
  • Call Macro1 放在哪里?
  • 而不是myWorkBook.Application.Run "Module1.Macro1()"
  • 对不起,我刚刚意识到宏在不同的 WB 中
  • 试试这个myxlApplication.Run "Macro1" ...等等,你是在Mac上运行这个吗?还是窗户?如果是 Mac,VBS 脚本不会在 Mac 上运行。

标签: excel vbscript


【解决方案1】:

我太傻了把sub test(), end sub放到vbs里,vbs不认代码。

【讨论】:

  • VBScript 确实可以识别代码,但您实际上需要调用它 (Sub test : ... : End Sub : test)。
  • 您需要调用您在 VBScript 中定义的过程(子程序)。只需在实际子代码的上方或下方添加一行test
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2022-10-24
  • 1970-01-01
  • 1970-01-01
  • 2022-06-11
  • 1970-01-01
相关资源
最近更新 更多