【发布时间】:2016-04-26 15:17:10
【问题描述】:
如何将第 2 部分中的 VBA 模块中的错误代码成功传递给第 1 部分中执行它的 VBScript?
第 1 部分:执行第 2 部分中的 VBA 的 VBScript
Option Explicit
Dim xlApp
Dim xlBook
If Err.Number <> 0 Then Err.Clear
Set xlApp = GetObject("","Excel.Application")
Set xlBook = xlApp.Workbooks.Open("\\(directory)\(File Name).xlsm", 0, True)
xlApp.Run "(Macro Name)"
If Err.Number <> 0 Then
Msgbox Err.Number & ": " & Err.Description & " The script will now quit."
WScript.Quit
Else
Msgbox Err.Number
End If
xlApp.Quit
第 2 部分:执行第 2 部分中的 VBA 的 VBScript
Option Explicit
Sub (MacroName)()
'Snip - A bunch of working code
Err.Number = 7
Err.Description = "Made up error for testing - delete me"
End Sub
运行此脚本时,测试时 Err.Number 为 0,并且 Msgbox 仅显示 0。我需要做什么才能显示7: Made up error for testing - delete me The script will now quit.
【问题讨论】:
-
将其作为参数传递?
-
@findwindow 你会和下面 Mat's Mug 的回答类似吗?
-
我不知道 vbscript。
-
@HuguesPaquetBlanchette 我拒绝了您对
excel标签的建议编辑,但如果您能指出一些元数据,说我们应该使用更广泛的标签以及更窄的标签,我会批准该编辑。我不知道这个话题的元结论是什么。 -
@findwindow 我也不知道!它真的很像 VBA,但没有显式类型,并且它不需要运行
Sub或Function过程,因为它是一个“脚本”。