如何只有在Excel工作簿是打开使用VBScript运行宏?(How to run a macro

2019-09-22 14:37发布

世界!

我想在我的工作自动完成报表任务,我有以下情况:

我需要通过使用脚本在工作簿执行宏。 我试着写一个VBScript来完成这项工作,这是它的显著部分:

Set objWbk = GetObject("***Path***\test.xlsm")

objWbk.Application.Run "test.xlsm!test" 

WScript.Quit

宏完美运行。 我真正的问题是,我只希望做只有在工作簿打开报表。

有没有一种方法(在VBS或VBA),以确定是否该工作簿是打开的? (顺便说一下,它位于另一台计算机上我的网络上)

Answer 1:

既然你要运行,只有当工作簿已经打开的宏,这样的事情可能工作:

wbName = "test.xlsm"
wbFullName = "***Path***\" & wbName

Set xl = GetObject(, "Excel.Application")
For Each wb In xl.Workbooks
  If LCase(wb.Path & "\" & wb.Name) = wbFullName Then
    wb.Application.Run wbName & "!test"
  End If
Next


Answer 2:

这不是完整的测试,可能需要一点修改,但看它是否得到你所需要的。

On Error Resume Next
Set objWbk = GetObject("***Path***\test.xlsm")

If Err.Number = 0 Then objWbk.Application.Run "test.xlsm!test" 

wScript.Quit


文章来源: How to run a macro only if the Excel workbook is open with VBScript?