Цитата:
Сообщение от
S.Kuskov
На самом деле непонятно откуда Excel берёт информацию о типе ячейки, потому что отображает он её корректно в текстовом виде, а хранит получается что как число

Там все хитро, но суть в том, что строковые значения хранятся в отдельной от ячеек области - Shared Strings. В самих же ячейках, при этом, сохраняется ссылка на значение в этой области (по факту - индекс в массиве строк)
Нестроковые значения хранятся непосредственно в ячейках и их тип определяется самими данными.
Когда меняется формат ячейки, значение в ней хранящееся не переносится в эту область, а остается в ячейке (по сути, меняется лишь отображение этих данных, что хорошо видно на примере дат).
Если тип ячейки текстовый или указан перед данными апостроф, то вносимое значение всегда будет сохраняться в разделяемой области.
PS
Для получения текстового значения ячейки независимо от типа хранимых в ней данных можно пользоваться функцией Text() вместо Value() или Value2()