Почему 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

Ответы на вопрос(2)

Ваш ответ на вопрос