Web Query sehr langsam
20.03.2020 11:38:20
Lutz
ich habe einen Code hier aus dem Forum gefunden und hole mir Aktienkurse über Ariva. Das ist aber sehr langsam. Hat jemand eine Idee wie man das schneller machen kann?
For i = 1 To N
loeschenAlleQueries
Sheets("Tabelle1").Select
WKNR1 = Range("Tabelle2!e8")
'WKNR2 = Range("Tabelle2!f8")
Range("a3:aa500").ClearContents
Range("A3").Select
With ActiveSheet.QueryTables.Add(Connection:= _
"URL;http://www.ariva.de/" & WKNR1, Destination:=Range("$A$3"))
.Name = "kurs"
.FieldNames = True
.RowNumbers = False
.FillAdjacentFormulas = False
.PreserveFormatting = True
.RefreshOnFileOpen = False
.BackgroundQuery = True
.RefreshStyle = xlOverwriteCells
.SavePassword = False
.SaveData = True
.AdjustColumnWidth = True
.RefreshPeriod = 0
.WebSelectionType = xlEntirePage
.WebFormatting = xlWebFormattingNone
.WebPreFormattedTextToColumns = True
.WebConsecutiveDelimitersAsOne = True
.WebSingleBlockTextImport = False
.WebDisableDateRecognition = False
.WebDisableRedirections = False
.Refresh BackgroundQuery:=False
End With
ActiveWorkbook.Connections("Verbindung").Delete
Application.Volatile
Application.Calculate
Range("A1:J1").Copy
Sheets("Tabelle2").Select
ActiveCell.PasteSpecial xlPasteValues
Application.CutCopyMode = False
Range("e9:g61").Copy Range("e8")
ActiveCell.Offset(1, 0).Range("a1").Select
Next i
.....
Sub loeschenAlleQueries()
Dim qry As QueryTable, ws As Worksheet
Set ws = ThisWorkbook.Worksheets("Tabelle1")
For Each qry In ws.QueryTables
Debug.Print qry.Name
qry.Delete
Next qry
Set qry = Nothing
Set ws = Nothing
End Sub
Ich hatte erst nicht auf.RefreshStyle = xlOverwriteCells
gesetzt und hatte Probleme wegen der Bereiche.
Screenupdating etc. nehme ich am Anfang raus und setze es am Ende wieder rein - deswegen die Zeilen
Application.Volatile
Application.Calculate
Hat jemand eine Idee wie man das performanter erledigen kann oder sind Web-Abfragen immer so langsam?
Vielen Dank und viele Grüße
Lutz