возврат каретки csv не отображается в Excel

#excel #csv #carriage-return

#excel #csv #возврат каретки

Вопрос:

Я хочу импортировать CSV-файл в Excel. В файле csv есть возвраты каретки, но Excel их не показывает (см. Рисунок 1). Возврат каретки появляется только тогда, когда я выделяю текст в ячейке и нажимаю enter.

Есть ли способ решить эту проблему автоматически? (vba)

  • Я пытался заменить возврат каретки точкой с запятой, но Excel не находит возврат каретки. (=SUBSTITUTE(F2, CHAR(10), «;»)
  • В ячейках включен перенос текста
  • Я пытался найти возврат каретки с помощью макроса и функции «instr ()», но Excel не находит Chr (10).

 Sub FindCarriageReturn()

myPos = InStr(1, Range("F2"), Chr(10))

End Sub  

Все документы: https://drive.google.com/open?id=1Kwr1VjCSdxtbtNcM6h5Rl8tc_Mo9XIA6

Заранее спасибо!

Dieter

рисунок

Комментарии:

1. Включен ли у вас перенос текста для этих ячеек?

2. если я включу его, разницы не будет

3. Можете ли вы загрузить текстовый файл (csv), который демонстрирует проблему (с удаленной конфиденциальной информацией)? Загрузите на какой-нибудь сайт общего доступа (например, DropBox, OneDrive и т.д.) И разместите ссылку в своем вопросе.

4. Это сделано. Ссылка предоставит вам файл csv, файл Excel с проблемой и файл excel с желаемым результатом. Если есть какие-либо проблемы со ссылкой, пожалуйста, сообщите мне. Спасибо 🙂

Ответ №1:

Ваш CSV-файл содержит возврат каретки (CR, CHAR(13), Chr(13) или vbCr в VBA) внутри данных, а также возврат каретки и перевод строки (CR LF, CHAR(10) amp; CHAR (13), vbCrLf в VBA) в конце каждой строки.

Если вы откроете файл CSV, например, с помощью notepad , это будет выглядеть следующим образом:

CSV-файл с notepad

Поскольку Excel нуждается в переводе строки внутри ячейки для получения видимого переноса текста, вы можете использовать формулу, подобную этой:

 =SUBSTITUTE(F2, CHAR(13), CHAR(10))