В настоящее время возникают проблемы с циклом замены регулярных выражений для форматирования системы заявок
Я тестирую сегмент кода, который будет соответствовать регулярному выражению определенного формата для номера заявки.Номер билета должен быть в формате «INC01234567» (до 8 цифр).«INC» может быть необязательным, так что пользователь может просто ввести конечный номер (IE 1234567), и цикл добавит дополнительные «0», чтобы дать числовое значение до 8 цифр.В настоящее время, однако, я застрял в математической проблеме, когда добавляется слишком много нулей к результату, если вы вводите полный номер заявки.
I
Sub Incident()
Dim sInc As String 'Incident Number Field
Dim strPattern As String: strPattern = "^(?:INC|NC|C)?([0-9]{1,8}$)"
Dim strReplaceINC As String: strReplaceINC = "$1"
Dim regEx As New RegExp
Dim strInput As String
Dim IncResult As Boolean
Do
If strPattern <> "" Then
strInput = inputbox("Input Incident Number", "Ticket Number")
If strInput = vbNullString Then
Exit Sub
End If
IncResult = False
With regEx
.Global = True
.MultiLine = True
.IgnoreCase = True
.Pattern = strPattern
End With
If regEx.Test(strInput) Then
sInc = regEx.Replace(strInput, strReplaceINC)
Dim L As Integer: L = Len(sInc)
Do
sInc = "0" & sInc
L = L + 1
Loop While L <= 8
sInc = "INC" & sInc
IncResult = True
'sInc = strInput
Else
MsgBox ("Please input a valid ticket number format")
IncResult = False
End If
End If
Loop While IncResult = False
MsgBox (sInc)
End Sub