2015-02-19 5 views
0

Странный случай здесь. Это VBA код, который генерируется автоматически с «Запись макроса» после того, как импортировать текстовый файл, содержащий символы Юникода в Excel 2013:импортировать текстовый файл, содержащий Unicode в Excel 2010 с VBA

With ActiveSheet.QueryTables.Add(Connection:= _ 
     "TEXT;C:\Folder1\Sampletxtfile.txt", _ 
     Destination:=Range("$A$1")) 
     .CommandType = 0 
     .Name = "Sampletxtfile" 
     .FieldNames = True 
     .RowNumbers = False 
     .FillAdjacentFormulas = False 
     .PreserveFormatting = True 
     .RefreshOnFileOpen = False 
     .RefreshStyle = xlInsertDeleteCells 
     .SavePassword = False 
     .SaveData = True 
     .AdjustColumnWidth = True 
     .RefreshPeriod = 0 
     .TextFilePromptOnRefresh = False 
     .TextFilePlatform = 65001 
     .TextFileStartRow = 1 
     .TextFileParseType = xlDelimited 
     .TextFileTextQualifier = xlTextQualifierDoubleQuote 
     .TextFileConsecutiveDelimiter = False 
     .TextFileTabDelimiter = True 
     .TextFileSemicolonDelimiter = False 
     .TextFileCommaDelimiter = True 
     .TextFileSpaceDelimiter = False 
     .TextFileColumnDataTypes = Array(1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, _ 
     1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1) 
     .TextFileTrailingMinusNumbers = True 
     .Refresh BackgroundQuery:=False 
    End With 

Проблема: если я использую этот код и запустить его на моем собственном его выдает ошибку («Неверный вызов или аргумент процедуры») в строке: . Тип команды = 0 Любая помощь по исправлению этого вопроса? И не должен ли автоматически генерируемый код быть точным, потому что он указывает правильный синтаксис? Я обычно использую его для этого ...

+0

Вы пытались удалить. Командная строка – CodeCamper

ответ

0

От вступления MSDN о QueryTable.CommandType собственности https://msdn.microsoft.com/en-us/library/office/ff840602(v=office.15).aspx

Вы можете установить свойство CommandType только если значение свойства тип_запроса для таблицы запроса или сводной таблицы кеш - xlOLEDBQuery.

Вы не делаете запрос OLEDB, поэтому QueryType - это что-то еще. Поскольку это что-то еще, тогда вы не можете установить CommandType, поэтому просто удалите его.