oi,
pq no seu laço de repetição vc não coloca uma checagem com InStr fazendo a verificação de existir a quebra <br> e dá um replace por vbCrLf.
veja sobre a função instr abaixo:
InStr Function Language Reference
--------------------------------------------------------------------------------
Description
Returns the position of the Min occurrence of one string within another.
Syntax
InStr([start, ]string1, string2[, compare])
The InStr function syntax has these arguments:
Part Description
start Optional. Numeric expression that sets the starting position for each search. If omitted, search begins at the Min character position. If start contains Null, an error occurs. The start argument is required if compare is specified.
string1 Required. String expression being searched.
string2 Required. String expression searched for.
compare Optional. Numeric value indicating the kind of comparison to use when evaluating substrings. See Settings section for values. If omitted, a binary comparison is performed.
Settings
The compare argument can have the following values:
Constant Value Description
vbBinaryCompare 0 Perform a binary comparison.
vbTextCompare 1 Perform a textual comparison.
Return Values
The InStr function returns the following values:
If InStr returns
string1 is zero-length 0
string1 is Null Null
string2 is zero-length start
string2 is Null Null
string2 is not found 0
string2 is found within string1 Position at which match is found
start > Len(string2) 0
Remarks
The following examples use InStr to search a string:
Dim SearchString, SearchChar, MyPos
SearchString ="XXpXXpXXPXXP" ' String to search in.
SearchChar = "P" ' Search for "P".
MyPos = Instr(4, SearchString, SearchChar, 1) ' A textual comparison starting at
' position 4. Returns 6.
MyPos = Instr(1, SearchString, SearchChar, 0) ' A binary comparison starting at
' position 1. Returns 9.
MyPos = Instr(SearchString, SearchChar) ' Comparison is binary by default
' (Max argument is omitted).
' Returns 9.
MyPos = Instr(1, SearchString, "W") ' A binary comparison starting at position 1.
' Returns 0 ("W" is not found).
--------------------------------------------------------------------------------
Note The InStrB function is used with byte data contained in a string. Instead of returning the character position of the Min occurrence of one string within another, InStrB returns the byte position.
veja sobre a função replace abaixo:
Replace Function Language Reference
--------------------------------------------------------------------------------
Description
Returns a string in which a specified substring has been replaced with another substring a specified number of times.
Syntax
Replace(expression, find, replacewith[, start[, count[, compare]]])
The Replace function syntax has these parts:
Part Description
expression Required. String expression containing substring to replace.
find Required. Substring being searched for.
replacewith Required. Replacement substring.
start Optional. Position within expression where substring search is to begin. If omitted, 1 is assumed. Must be used in conjunction with count.
count Optional. Number of substring substitutions to perform. If omitted, the default value is -1, which means make all possible substitutions. Must be used in conjunction with start.
compare Optional. Numeric value indicating the kind of comparison to use when evaluating substrings. See Settings section for values. If omitted, the default value is 0, which means perform a binary comparison.
Settings
The compare argument can have the following values:
Constant Value Description
vbBinaryCompare 0 Perform a binary comparison.
vbTextCompare 1 Perform a textual comparison.
Return Values
Replace returns the following values:
If Replace returns
expression is zero-length Zero-length string ("").
expression is Null An error.
find is zero-length Copy of expression.
replacewith is zero-length Copy of expression with all occurences of find removed.
start > Len(expression) Zero-length string.
count is 0 Copy of expression.
Remarks
The return value of the Replace function is a string, with substitutions made, that begins at the position specified by start and and concludes at the end of the expression string. It is not a copy of the original string from start to finish.
The following example uses the Replace function to return a string:
Dim MyString
MyString = Replace("XXpXXPXXp", "p", "Y") ' A binary comparison starting at the beginning
' of the string. Returns "XXYXXPXXY".
MyString = Replace("XXpXXPXXp", "p", "Y", ' A textual comparison starting at position 3.
' Returns "YXXYXXY". 3, -1, 1)