VBA: функция замены не работает на строке...?
Я действительно запутался.. этот скрипт должен анализировать выбранную почту построчно. Эти письма, конечно, не всегда в виде простого текста, но иногда форматированного текста. Скрипт работал с простыми текстовыми файлами, но с почтой замена не работает. Зачем?
Данные в почте разделяются пробелами (от 1 до 5), т.е.
24 month
5/1 5/2 5/3 5/4
20 50 30 20
Однако, когда я перебираю код, замена не имеет никакого эффекта, и длина строки остается той же.
Вот часть моего сценария синтаксического анализа:
Dim varCurrentLine As Variant
Dim strCurrentLine As String
Dim astrLines() As String
Dim astrCurrentLine() As String
astrLines = Split(myMail.Body, vbCrLf)
For Each varCurrentLine In astrLines
strCurrentLine = CStr(varCurrentLine)
If (InStr(1, strCurrentLine, "24 Month")) Then boolStartParsing = True
If (boolStartParsing) Then
strCurrentLine = Replace(strCurrentLine, " ", " ")
strCurrentLine = Replace(strCurrentLine, " ", " ")
strCurrentLine = Replace(strCurrentLine, " ", " ")
strCurrentLine = Replace(strCurrentLine, " ", " ")
strCurrentLine = Replace(strCurrentLine, " ", " ")
strCurrentLine = Replace(strCurrentLine, " ", " ")
strCurrentLine = Replace(strCurrentLine, " ", " ")
strCurrentLine = Replace(strCurrentLine, " ", " ")
If (Len(strCurrentLine) > 0) Then
astrCurrentLine = Split(strCurrentLine, " ")
'Parsin code omitted
End If
End If
Next varCurrentLine
2 ответа
Это, конечно, заставляет меня думать, что пробелы, которые вы использовали для сравнения пробелов в тексте письма, не совпадают.
Нашел эту ссылку в Google:
http://dmcritchie.mvps.org/excel/join.htm
Есть вероятность, что ваши "пробелы" могут быть "неразрывными пробелами", которые CHR(160)
в VBA.
Вы также можете использовать while
цикл для очистки вашего кода:
While InStr(strCurrentLine, Chr(32) & Chr(32)) > 0 _
Or InStr(strCurrentLine, Chr(160) & Chr(160)) > 0
strCurrentLine = Replace(strCurrentLine, Chr(32) & Chr(32), Chr(32))
strCurrentLine = Replace(strCurrentLine, Chr(160) & Chr(160), Chr(32))
Wend