Workbooks.OpenText не принимает параметр fieldinfo

Следующий код демонстрирует проблему, указанную в заголовке вопроса.

Скопируйте и вставьте его в новую книгу 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 должен обрабатывать все импортированные данные как текст. К сожалению, это не так.

Может ли кто-нибудь показать мне, как правильно использовать opentext и fieldinfo?

Я уже знаю обходной путь с QueryTables.Add(Connection[...].
Но это не решение для моего случая.


person nixda    schedule 04.03.2012    source источник


Ответы (1)


Если вы переименуете расширение из входного файла с .csv на .txt, параметр fieldinfo будет работать как задумано.

person nixda    schedule 05.03.2012
comment
Большое спасибо за это, я потратил целую вечность, пытаясь workbooks.opentext в файле .csv и получил плохие результаты, пока не переименовал его в .txt. Это где-то задокументировано? Я не вижу ссылки на CSV на соответствующей странице библиотеки MSDN. И есть ли обходной путь, если я не могу переименовать файл из .csv? - person idoimaging; 22.05.2013
comment
@a.out Да, взгляните на этот ответ. Я рекомендую вам использовать QueryTables. Взгляните на пример кода - person nixda; 07.11.2016