Я понял способ, и я хотел бы поделиться этим здесь с вами, ребята. Я уверен, что другие идеи и входные данные также будут полезны и приветствуются!
Чтобы сделать сообщение более гибким, я определил несколько Publi c 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 только для отображения окна сообщения:
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 вместо каждого куска кода.
Также я заметил, что могу установить константы publi c для заголовков msgboxes и использовать их в сообщениях, когда транзакции в порядке или
Надеюсь, это кому-нибудь поможет!