Почему Application.Clean () удаляет печатаемые символы?
Вопрос о награде:
Хотя есть ответ, который дает разумное объяснение, я хочу определить, происходит ли усечение строки, потому чтоClean()
этоWorksheetFunction
и причины этого вопроса. ДелатьWorksheetFunctions
когда вызываетсяVBA
передать строку в «ячейку», так сказать, которая усекает наnull Chr(0)
?
Оригинальный вопрос:
ПочемуTestIt
«sApplication.Clean
метод удалить все символы послеChr(0)
хотя они для печати?TestIt2
правильно возвращает 8 символов после выполнения замены наnull Chr(0)
.
Редактировать:
Стоит отметить, что в некоторых версиях Excel вам потребуется написатьApplication.WorksheetFunction.Clean()
чтобы проверить эту ошибку.
Код
Sub TestIt()
Dim TryIt As String
TryIt = "Test" & Chr(0) & "asdf"
MsgBox Len(TryIt) 'Prints 9
TryIt = Application.Clean(TryIt)
MsgBox Len(TryIt) 'Prints 4
End Sub
а также
Sub TestIt2()
Dim TryIt As String
TryIt = "Test" & Chr(0) & "asdf"
MsgBox Len(TryIt) 'Prints 9
TryIt = Replace(TryIt, Chr(0), "")
MsgBox Len(TryIt) 'Prints 8
End Sub