#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 , это будет выглядеть следующим образом:
Поскольку Excel нуждается в переводе строки внутри ячейки для получения видимого переноса текста, вы можете использовать формулу, подобную этой:
=SUBSTITUTE(F2, CHAR(13), CHAR(10))