1

Я пытаюсь сохранить запятую после разделения строки, поэтому, когда я вводю некоторые данные в ячейку, чтобы быть похожими на - C1 ширина 2, - сохранить эту запятую C8 слияния 2, а не как текущий вывод - C1 ширина 2 C8 слияния 2. Итак, это мой код:

Sub Worksheet_Change(ByVal Target As Range)


Application.EnableEvents = False
Dim BigS As String
Dim arr As Variant
Dim a As Variant


If Intersect(Range("G:G"), Target) Is Nothing Then Exit Sub
arr = Split(Target, " ")
For Each a In arr
    If IsItGood(a) Then
    MsgBox (" In cell" + Target.Address(0, 0)) & vbCrLf & a & vbCrLf + "is ok"
    Else
        MsgBox (" In cell" + Target.Address(0, 0)) & vbCrLf & a & vbCrLf + "has invalid values"
        Application.Undo
    End If

    Next a
Application.EnableEvents = True
End Sub

На данный момент этот метод разделения игнорирует все запятые, но я хочу, чтобы каждая запятая между 3 набора строк - C1 ширина 2 "здесь, чтобы быть запятой" C8 слияние 2

1 ответ1

1

Для справки:

Предыдущий вопрос

код IsItGood() был:

Public Function IsItGood(aWord As Variant) As Boolean
    Dim s As String
    s = "|"
    tmp = s & aWord & s
    patern = ""

    For i = 1 To 100
        patern = patern & s & i
    Next i
    For i = 1 To 10
        patern = patern & s & "C" & i
    Next i
    patern = patern & s & "merge|complete framed|width|border left|border right" & s

    If InStr(1, patern, tmp) > 0 Then
        IsItGood = True
    Else
        IsItGood = False
    End If

End Function

Чтобы сделать его "запятым", измените:

tmp = s & aWord & s

чтобы:

tmp = Replace(s & aWord & s, ",", "")

Независимо от того, есть ли запятые, вам все равно нужен пробел между словами во входной фразе.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .