Я пытаюсь получить данные с помощью запроса мощности, но получаю сообщение об ошибке «неверный вызов процедуры или аргумент».
Я пробовал другие варианты, используя массивы и линейный ввод, но, поскольку они занимали слишком много времени, мне пришлось переключиться на другой вариант.
Ошибка в строке: ActiveWorkbook.Queries.Add Name:=QueryName, Formula:=SourceFormula)
Ниже приведен код:
Sub Import_AACR()
Dim QueryName, SourceFormula, ConnStr As String
QueryName = "AACR_Pull"
SourceFormula = "let Source = Csv.Document(File.Contents(""C:\ENDO AACR\AACR_20200123_2020Q1_V6.0.txt""),[Delimiter=""|"", Columns=27, Encoding=1252, QuoteStyle=QuoteStyle.None])," & _
"#""Promoted Headers"" = Table.PromoteHeaders(Source, [PromoteAllScalars=true])," & _
"#""Changed Type"" = Table.TransformColumnTypes(#""Promoted Headers"",{{""REQUEST#"", Int64.Type}, {""REQUEST_SUBMIT_DT"", type text}, {""REQUEST_SUBMIT_TYPE"", type text}, {""SALES_TEAM"", type text}, {""DM_NAME"", type text}, {""STATUS"", type text}})in #""Changed Type"""
ActiveWorkbook.Queries.Add Name:=QueryName, Formula:=SourceFormula
Connstr = "OLEDB;" & _
"Provider = Microsoft.Mashup.OleDb.1;" & _
"Data Source = $Workbook$;" & _
"Location=""AACR_Pull"";" & _
"Extended Properties="""""
With ActiveSheets.ListObjects.Add(SourceType = xlSrExternal, _
LinkSource:=True, _
xlListObjectHasHeaders:=xlYes, _
Source:=Connstr, _
TableStyleName:="TableStyleMedium8", _
Destinatio:=Range("A$1")).QueryTable
.CommandType = xlCmdSql
.CommandText = Array("SELECT * FROM [AACR_Pull]")
.Refresh BackgroundQuery = False
End With
End Sub
Запрос исходной формулы скопирован из редактора мощных запросов, и я только что использовал дополнительные escape-символы.