如何将MsgBox中的错误消息复制到Windows剪贴板?

问题描述 投票:0回答:1
  1. 运行以下宏。

     Sub Macro1()
         MsgBox "Hello"
     End Sub
    
  2. 当弹出Msgbox时,按键盘上的Ctrl+C键。

  3. 打开 NotePad 文件并按键盘上的 Ctrl+V 键。

  4. 如您所见,您可以从 Msgbox 复制并粘贴到 NotePad 文件中。

  5. 现在让我们做第二个场景。

  6. 运行以下宏。

     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
    
  7. 当弹出Msgbox时,按键盘上的Ctrl+C键。

  8. 打开 NotePad 文件并按键盘上的 Ctrl+V 键。

  9. 如您所见,您无法从 Msgbox 复制并粘贴到 NotePad 文件中。

我的问题:如何将错误消息从MsgBox复制到Windows剪贴板,正如我在第二个场景中给出的示例。

vba windows error-handling ms-office msgbox
1个回答
0
投票

嗯,你可以从

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
© www.soinside.com 2019 - 2024. All rights reserved.