Следующий код демонстрирует проблему, указанную в заголовке вопроса.
Скопируйте и вставьте его в новую книгу Microsoft Excel 2003.
Sub mytest()
mypath = Application.GetSaveAsFilename()
Workbooks.OpenText Filename:=mypath, DataType:=xlDelimited, _
TextQualifier:=xlTextQualifierDoubleQuote, _
semicolon:=True, _
fieldinfo:=Array(Array(1, 2), Array(2, 2), Array(3, 2), Array(4, 2)), _
Local:=True
End Sub
Выполните код. Он запросит входной файл, в котором вы должны использовать этот test.csv, разделенный точкой с запятой. Он создает новую книгу и импортирует все данные из test.csv на лист1.
На рисунке ниже показан результат
Но это должно было показать такой результат
fieldinfo:=Array(Array(1, 2), Array(2, 2), Array(3, 2), Array(4, 2))
указывает, что Excel должен обрабатывать все импортированные данные как текст. К сожалению, это не так.
- Двумерный массив: первое число — это номер столбца, второе число — тип данных, где 2 — текст
- Я должен использовать «локальный» параметр, потому что я работаю в локализованной ОС с локализованным Office 2003.
- Операционная система не имеет значения, так как это происходит в Windows XP и в Windows 7.
Может ли кто-нибудь показать мне, как правильно использовать opentext и fieldinfo?
Я уже знаю обходной путь с QueryTables.Add(Connection[...].
Но это не решение для моего случая.