Веб-запрос Excel

Я использую инструмент веб-запросов для импорта таблицы в электронную таблицу. Учитывая, что я хотел запросить сайт несколько раз, я записал макрос, чтобы преобразовать веб-запрос в формат VBA, а затем использовать его в цикле для загрузки нужной мне таблицы.

При этом я заметил, что веб-запрос excel делает что-то странное (для меня очевидно). Из источника данных выполняется преобразование заголовка столбца путем жесткого кодирования даты. Это не будет проблемой, если заголовок будет статическим, но, учитывая, что они изменятся, это будет проблемой, если я оставлю код как есть.

Мне было интересно, есть ли способ обобщить в VBA преобразование данных, выполненное веб-запросом, чтобы он правильно импортировал данные и дату

Вы можете найти код веб-запроса ниже

"let" & Chr(13) & "" & Chr(10) & "    Source =
 Web.Page(Web.Contents(""https://fred.stlouisfed.org/release/tables?
rid=53&eid=783269#snid=783270""))," & Chr(13) & "" & Chr(10) & 
"    Data0 = Source{0}[Data]," & Chr(13) & "" & Chr(10) & 
"    #""Changed Type"" = Table.TransformColumnTypes(Data0,{{"""", type text},
 {""Q3 2020"", type number}, {""Q2 2020"", type number}, {""Q3 2019"", type
 number}})" & Chr(13) & "" & Chr(10) & "in" & Chr(13) & "" & Chr(10) & " 
   #""Changed Type"""

person Marco_sbt    schedule 21.11.2020    source источник


Ответы (1)


Вы можете определить текущие имена столбцов и самостоятельно создать список преобразований.

eg:

colNames = Table.ColumnNames(Data0),
colTypes = {type text, type number, type number, type number},

    #"Changed Type" = Table.TransformColumnTypes(Data0,List.Zip({colNames,colTypes}))
person Ron Rosenfeld    schedule 21.11.2020
comment
Спасибо за ваш вклад. Хотя я не являюсь экспертом по VBA, особенно с PowerQuery (поэтому я записал макрос), поэтому я уверен, куда вставить код, который вы предлагаете, или как изменить код, который я опубликовал. Можете ли вы помочь случайно с некоторыми дополнительными данными? Спасибо, я очень ценю @RonRosenfeld - person Marco_sbt; 22.11.2020
comment
@Marco_sbt Судя по тому, что вы опубликовали (что, как я уверен, вы заметили, довольно сложно читать со всеми включенными непечатаемыми символами), я предполагаю, что вы замените свою строку #"Changed Type" строками в мой код. Делаете ли вы это в VBA или в редакторе Power Query, зависит от того, откуда вы взяли эти строки. - person Ron Rosenfeld; 22.11.2020