gpt4 book ai didi

excel - 如何使 msgbox 成为变量并在错误处理程序上触发它?

转载 作者:行者123 更新时间:2023-12-03 08:42:19 27 4
gpt4 key购买 nike

我一直在做一个宠物项目,我想知道如何构建一种更灵活的方式来更改显示在我的错误处理程序上的消息并节省我的时间,以防我决定稍后更改它但匆忙更改所有我的代码中的消息。

有可能吗?

最佳答案

我意识到了一种方法,我想在这里与大家分享。我相信其他见解和投入也会一路而来,他们将非常受欢迎!

为了让消息更灵活,我定义了几个 Public Const 包含:

Public Const strGlobalErrorMsg_Title = "ERROR"

Public Const strGlobalErrorMsg_Line1 = "Sorry"
Public Const strGlobalErrorMsg_Line2 = "Make sure you entered the correct info and try again."
Public Const strGlobalErrorMsg_Line3 = "Error Number: "
Public Const strGlobalErrorMsg_Line4 = "Description: "
Public Const strGlobalErrorMsg_Line5 = "Form: "
Public Const strGlobalErrorMsg_Line6 = "Line number: "
Public Const strGlobalErrorMsg_Line7 = "me@me.com"

Public strNomeFormulario As String

strNomeFormulario 是一个字符串,它将包含来自字符串变量的表单名称,该字符串变量将在用户表单初始化时分配,因此它是可选的。
Private Sub UserForm_Initialize()
strNomeFormulario = Me.Caption
End Sub

然后我创建了一个子只显示消息框:
Sub MsgBoxError()
MsgBox strGlobalErrorMsg_Line1 & vbCrLf & vbCrLf & _
strGlobalErrorMsg_Line2 & vbCrLf & vbCrLf & _
strGlobalErrorMsg_Line3 & Err.Number & vbCrLf & _
strGlobalErrorMsg_Line4 & Err.Description & vbCrLf & _
strGlobalErrorMsg_Line5 & strNomeFormulario & vbCrLf & _
strGlobalErrorMsg_Line6 & Erl & vbCrLf & vbCrLf & _
strGlobalErrorMsg_Line7, vbExclamation, strGlobalErrorMsg_Title
End Sub

每当发现错误时,都会从 sub 调用它:
ErrHandler:
Call MsgBoxError

这是一个简单的测试,您可以创建一个用户表单或简单地在电子表格上创建一个按钮并放置此代码。如果您选择将其放在工作表上,请记住捕获用户窗体名称的字符串将什么都不是。
Private Sub CommandButton1_Click()

On Error GoTo Err_Handler:

Dim X As Integer: X = 5

Dim Y As Integer: Y = 0

Dim intResult As Integer: intResult = X / Y ' It will generate an error because no number can be divided by zero.

Err_Handler:
Call MsgBoxError

End Sub

根据这个想法,您可以开发自己的错误处理程序,如果您决定稍后更改它,您所要做的就是更改 Sub 而不是每段代码。

此外,我注意到我可以为 msgboxes 的标题设置公共(public)常量,并在事务正常或输入框时将其用于消息。

我希望它可以帮助某人!

关于excel - 如何使 msgbox 成为变量并在错误处理程序上触发它?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60644632/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com