世界!
我想在我的工作自动完成报表任务,我有以下情况:
我需要通过使用脚本在工作簿执行宏。 我试着写一个VBScript来完成这项工作,这是它的显著部分:
Set objWbk = GetObject("***Path***\test.xlsm")
objWbk.Application.Run "test.xlsm!test"
WScript.Quit
宏完美运行。 我真正的问题是,我只希望做只有在工作簿打开报表。
有没有一种方法(在VBS或VBA),以确定是否该工作簿是打开的? (顺便说一下,它位于另一台计算机上我的网络上)
既然你要运行,只有当工作簿已经打开的宏,这样的事情可能工作:
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
这不是完整的测试,可能需要一点修改,但看它是否得到你所需要的。
On Error Resume Next
Set objWbk = GetObject("***Path***\test.xlsm")
If Err.Number = 0 Then objWbk.Application.Run "test.xlsm!test"
wScript.Quit