运行以下宏。
Sub Macro1()
MsgBox "Hello"
End Sub
当弹出Msgbox时,按键盘上的Ctrl+C键。
打开 NotePad 文件并按键盘上的 Ctrl+V 键。
如您所见,您可以从 Msgbox 复制并粘贴到 NotePad 文件中。
现在让我们做第二个场景。
运行以下宏。
Sub Macro2()
Dim myNumber As Integer
myNumber = 20
Dim yourNumber As Integer
yourNumber = 0
'In mathematics, a number can not be divided by zero. So the following code must throw an error.
Dim resultNumber As Integer
resultNumber = myNumber / yourNumber
End Sub
当弹出Msgbox时,按键盘上的Ctrl+C键。
打开 NotePad 文件并按键盘上的 Ctrl+V 键。
如您所见,您无法从 Msgbox 复制并粘贴到 NotePad 文件中。
我的问题:如何将错误消息从MsgBox复制到Windows剪贴板,正如我在第二个场景中给出的示例。
嗯,你可以从
MsgBox
复制消息,但在第二种情况下,这不是MsgBox的问题。这是编译器发送的消息,提及错误号和错误描述。
要捕获相应的数据,您应该以下面的方式调整代码(将它们放置在普通的 MsgBox 中):
Sub Macro234()
Dim myNumber As Integer
myNumber = 20
Dim yourNumber As Integer
yourNumber = 0
'In mathematics, a number can not be divided by zero. So the following code must throw an error.
Dim resultNumber As Integer
On Error Resume Next
resultNumber = myNumber / yourNumber
If Err.number <> 0 Then
MsgBox "Error number: " & Err.number & vbCrLf & " Error Description: " & Err.Description
End If
On Error GoTo 0
End Sub