2

世界!

我正在尝试在我的工作中自动执行报告任务,但我遇到以下情况:

我需要使用脚本在工作簿上执行宏。我尝试编写一个 vbscript 来完成这项工作,这是其中的重要部分:

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

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

WScript.Quit

宏运行完美。我真正的问题是我只想在工作簿打开时才做报告。

有没有办法(在 vbs 或 vba 中)确定该工作簿是否打开?(顺便说一句,它位于我网络上的另一台计算机上)

4

2 回答 2

1

这没有经过全面测试,可能需要进行一些修改,但看看它是否能满足您的需求。

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

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

wScript.Quit
于 2012-09-19T17:05:30.220 回答
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
于 2012-09-20T14:24:58.747 回答