3

Я использую Excel 2003, чтобы сохранить большой файл в формате CSV.

Но при сохранении ячеек, которые содержат более 1024 символов, он обрезает символы за пределами 1024.

В предыдущем вопросе я использовал этот официальный макрос для сохранения: http://support.microsoft.com/default.aspx?scid=kb;en-us;291296&Product=xlw

Этот макрос, вероятно, вызывает его, так как я не использую обычную функцию Сохранить как (для того, чтобы поместить кавычки вокруг каждого поля).

Это может быть не 1024 символа, но длинные ячейки обрезаются. Что в этом макросе вызывает это?

2 ответа2

5

Код слишком умный для собственного блага. Он использует свойство Text, которое отображается в ячейке, чтобы получить текстовое представление значения ячейки. Проблема, упомянутая в другом ответе, состоит в том, что она ограничена 1024 символами. Вы можете изменить код для использования свойства Value, но это может работать не для всех типов значений ячеек.

Измените эту строку:

Print #FileNum, """" & Selection.Cells(RowCount, ColumnCount).Text & """";

Для того, чтобы:

Print #FileNum, """" & Selection.Cells(RowCount, ColumnCount).Value & """";
3

На самом деле, данные, введенные в электронную таблицу, все еще присутствуют в ячейке. Вы можете убедиться в этом, выбрав ячейку и посмотрев на панель формул.

Тем не менее, Excel отображает только до 1024 символов.

Когда вы сохраняете электронную таблицу в виде файла CSV, физические данные должны быть экспортированы так, как вы ожидаете, потому что они никогда не терялись. Вот руководство Microsoft по этому вопросу:

http://support.microsoft.com/default.aspx?scid=kb;en-us;211580

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .