Мне кажется, ваш код работает нормально. Единственная проблема, которую я вижу, это когда у вас есть разрыв строки, который не vbCrLf
(например, просто vbCr
или просто vbLf
).
В любом случае,вместо того, чтобы иметь цикл, который работает и продолжает заменять разрывы строк, вы можете использовать для этого регулярные выражения.
Попробуйте что-то вроде:
Private Sub CommandButton1_Click()
Dim regEx As New RegExp
regEx.Global = True
regEx.Pattern = "[\r\n]{2,}"
TextBox1.Text = regEx.Replace(TextBox1.Text, vbNewLine)
End Sub
Примечание:
Вам нужно будет добавить ссылку Microsoft VBScript Regular Expressions x.x
. Кроме того, вы можете использовать позднюю привязку:
Dim regEx As Object
Set regEx = CreateObject("VBScript.RegExp")