Я хочу извлечь данные о ценах инвестиционных фондов с веб-сайта на несколько листов Excel. Поэтому я собрал URL-адреса с этого веб-сайта в листе Excel следующим образом: Формат веб-сайта Затем я создал переменную, которая шаг за шагом содержит каждый из URL-адресов в for-l oop. Теперь я записал свой макрос, выполняя Power Query вручную. После выполнения макроса требуемые данные о цене записываются в другой лист Excel ... Проблема в том, что это работает только тогда, когда я вручную набираю URL в коде, потому что макрос не распознает переменную, которая содержит URL в следующем код, но переменная имеет важное значение для моей автоматизации. Код:
Sub Abfrage()
Dim intFonds As Integer
Let intFonds = 16
Dim strFondsname As String
strFondsname = Range("E" & intFonds).Value
For intFonds = 16 To 32
strFondsname = Range("E" & intFonds).Value
'Selection.Copy
' ActiveWorkbook.Queries.Add Name:="", Formula:= _
' "let" & Chr(13) & "" & Chr(10) & " Quelle = Web.Page_
'(Web.Contents(strFondsname = Range("E" & intFonds).Value))," & Chr(13) & "" & Chr(10) & " Data1 = Quelle{1}[Data]," & Chr(13) & "" & Chr(10) & " #""Geänderter Typ"" = Table.TransformColumnTypes(Data1,{{""Datum"", Int64.Type}, {""Eröffnung"", type number}, {""Schluss"", type number}, {""Tageshoch"", type number}, {""Ta" & "gestief"", type number}, {""Umsatz (St.)"", Int64.Type}})" & Chr(13) & "" & Chr(10) & "in" & Chr(13) & "" & Chr(10) & " #""Geänderter Typ"""
' ActiveWorkbook.Worksheets.Add
' With ActiveSheet.ListObjects.Add(SourceType:=0, Source:= _
' "OLEDB;Provider=Microsoft.Mashup.OleDb.1;Data Source=$Workbook$;Location=Document;Extended Properties=""""" _
' , Destination:=Range("$A$1")).QueryTable
' .CommandType = xlCmdSql
' .CommandText = Array("SELECT * FROM [Document]")
' .RowNumbers = False
' .FillAdjacentFormulas = False
' .PreserveFormatting = True
' .RefreshOnFileOpen = False
' .BackgroundQuery = True
' .RefreshStyle = xlInsertDeleteCells
' .SavePassword = False
' .SaveData = True
' .AdjustColumnWidth = True
' .RefreshPeriod = 0
' .PreserveColumnInfo = True
' .ListObject.DisplayName = "Document2"
' .Refresh BackgroundQuery:=False
' End With
' Sheets("Namen").Select
' ActiveCell.Offset(1, 0).Select
' Application.Wait (Now + TimeValue("0:01:00"))
Next intFonds
End Sub