Импортирован формат данных изменен - PullRequest
0 голосов
/ 11 февраля 2020

Я разработал скрипт, который работал с импортом данных из файла, а затем создавал соответствующие таблицы и диаграммы в Excel. К сожалению, формат данных входного файла изменился, и теперь скрипт выдает ошибку. Хотя изменение относится только к разделителю, изменение параметра delmiter в сценарии не приводит к его работе. Формат файла следующий:

Старый формат:

Имя, «Фамилия», «Электронная почта», «Компания», «Имя файла»

Новый формат:

Имя; Фамилия; Электронная почта; Компания; Имя файла

Я использую следующий код:


ActiveWorkbook.Queries.Add Name:="MyExport", Formula:= _
        "let" & Chr(13) & "" & Chr(10) & "    Source = Csv.Document(File.Contents(""C:\Users\Khawaja\Desktop\MyExport.csv""),[Delimiter="";"", Columns=5, Encoding=65001, QuoteStyle=QuoteStyle.None])," & Chr(13) & "" & Chr(10) & "    #""Promoted Headers"" = Table.PromoteHeaders(Source, [PromoteAllScalars=true])," & Chr(13) & "" & Chr(10) & "    #""Changed Type"" = Table.TransformColumnTypes(#""Promoted Headers"",{{""Name"", type text}, {""Surname"", type" & _
        " text}, {""Email"", type text}, {""Company"", type text}, {""File Name"", type text}})" & Chr(13) & "" & Chr(10) & "in" & Chr(13) & "" & Chr(10) & "    #""Changed Type"""
    Sheets.Add After:=ActiveSheet
    With ActiveSheet.ListObjects.Add(SourceType:=0, Source:= _
        "OLEDB;Provider=Microsoft.Mashup.OleDb.1;Data Source=$Workbook$;Location=MyExport;Extended Properties=""""" _
        , Destination:=Range("$A$1")).QueryTable
        .CommandType = xlCmdSql
        .CommandText = Array("SELECT * FROM [MyExport]")
        .RowNumbers = False
        .FillAdjacentFormulas = False
        .PreserveFormatting = True
        .RefreshOnFileOpen = False
        .BackgroundQuery = True
        .RefreshStyle = xlInsertDeleteCells
        .SavePassword = False
        .SaveData = True
        .AdjustColumnWidth = True
        .RefreshPeriod = 0
        .PreserveColumnInfo = False
        .ListObject.DisplayName = "MyExport_2"
        .Refresh BackgroundQuery:=False
    End With
    Selection.ListObject.QueryTable.Refresh BackgroundQuery:=False
    ActiveSheet.Select

В этом коде я изменил разделитель, но ошибка в том, что он не может распознать слово Имя в файле, что означает, что есть что-то, что мне нужно изменить

https://i.stack.imgur.com/r2Eut.png

Ошибка, которую я получаю, изображена выше.

Старые и новые файлы соответственно

https://i.stack.imgur.com/3nWDQ.png

https://i.stack.imgur.com/JJesh.png

...