Удаление первого и последнего разрывов строки - PullRequest
0 голосов
/ 27 мая 2020

Я пытаюсь удалить первую и последнюю строку из ячейки Excel, но я застрял. Я не могу поделиться данными Excel публично, поэтому для понимания я привел пример тестирования, как показано ниже. В первой и последней позиции есть некоторое случайное количество разрывов строк.

"

Тест 1 Тест 2 Тест 3 «

»
Тест 1 Тест 2 Тест 3

«

» Тест 1 Тест 2 Тест 3 «

»

Тест 1 Тест 2 Тест 3

"

Я пытаюсь вывести, как показано ниже:

" Тест 1 Тест 2 Тест 3 "

" Тест 1 Тест 2 Тест 3 "

" Тест 1 Тест 2 Тест 3 "

" Тест 1 Тест 2 Тест 3 "

Приведенный выше вывод удаляет все пустые строки и разрывы строк. Возможно ли это в Excel или VBA?

1 Ответ

0 голосов
/ 27 мая 2020

Вы можете разбить строку по разрыву строки, а затем объединить их. Хитрость в том, что вам нужно исключить первый и последний элемент из обхода и исключить последний разрыв из строки:

Sub RemoveExtraBreaks()
    '// Assume strings are in column A
    Dim rw&, i&, s$, arr As Variant
    For rw = 1 To 4
        '// Split string by linebreak
        arr = Split(Cells(rw, "A"), Chr(10))
        s = ""
        '// Concatenate strings which length is more than 1:
        For i = LBound(arr) + 1 To UBound(arr) - 1
            If Len(arr(i)) > 0 Then
                s = s & arr(i) & Chr(10)
            End If
        Next
        '// Exclude last linebreak from a string
        Cells(rw, "B") = """" & Left$(s, Len(s) - 1) & """"
    Next
End Sub
...