Я запрашиваю текстовый файл с использованием ADO для переноса данных в Excel.Запрос текстового файла ADO - результаты разделены запятой
cn.Open "Provider=Microsoft.Jet.OLEDB.4.0;" & _
"Data Source=" & filePath & ";" & _
"Extended Properties='text';"
rs.Open "SELECT * FROM " & fileName, cn
wsImport.Range("A1").CopyFromRecordset rs
Проблема, с которой я сталкиваюсь, заключается в том, что результаты запроса разделяются запятой как разделителем. Это означает, что когда я пишу данные на рабочий лист, он выводится через несколько столбцов.
Я подтвердил, что он разбивается на этапе запроса, а не на запись данных на рабочий лист. Мне нужно использовать rs.Fields(0)
и rs.Fields(1)
для доступа к некоторым строкам данных, когда я хочу, чтобы все данные были доступны в первом поле созданного набора записей (позволяя записывать данные в столбец A рабочего листа).
Может ли кто-нибудь уточнить, как я могу запросить текстовый файл, не разделяя данные каким-либо разделителем?
Я также пробовал использовать ниже в расширенных свойствах.
Extended Properties='text;HDR=Yes;FMT=Delimited';
и
Extended Properties='text;HDR=Yes;FMT=FixedLength';
Вы должны были бы создать Schema.ini файл, но я не могу понять, почему вы хотите использовать ADO вообще здесь, а не только чтение текстового файла в переменную, колки в массив на каждом новый символ линии, а затем просто отбросьте массив в лист. – Rory
Спасибо за ваш вход @Rory. С удовольствием рассмотрим ваше предложение, если бы вы могли привести пример того, как это будет работать? Я всегда работал с текстовыми файлами таким образом, исходя из предположения, что это был самый быстрый способ получения данных из текстового файла и в Excel. –