QueryTable wird in englisch heruntergeladen. Wo kann man die Sprachregion übergeben
Hallo,
ich mache eine Webabfrage,
lasse ich mir die Page im Browser anzeigen wird alles in deutsch dargestellt,
sobald ich diese dann mit folgendem Code herunter lade,
wird dieses in Englisch in Excel eingebunden (Bezeichnungen, aber auch Umlaute werden falsch dargestellt)
kann man in der Abfrage ein Parameter mit angeben, dass dieser die Spracheinstellung des Browsers verwendet?
ich mache eine Webabfrage,
lasse ich mir die Page im Browser anzeigen wird alles in deutsch dargestellt,
sobald ich diese dann mit folgendem Code herunter lade,
wird dieses in Englisch in Excel eingebunden (Bezeichnungen, aber auch Umlaute werden falsch dargestellt)
kann man in der Abfrage ein Parameter mit angeben, dass dieser die Spracheinstellung des Browsers verwendet?
Set shFirstQtr = Workbooks(1).Worksheets(1)
Set qtQtrResults = shFirstQtr.QueryTables _
.Add(Connection := "URL;xxxxxx Testpage von mi ( da Intranet nicht extern aufrufbar!!!", _
Destination := shFirstQtr.Cells(1,1))
With qtQtrResults
.WebFormatting = xlNone
.WebSelectionType = xlSpecifiedTables
.WebTables = "1,2"
.Refresh
End With
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 258558
Url: https://administrator.de/contentid/258558
Ausgedruckt am: 25.11.2024 um 15:11 Uhr
2 Kommentare
Neuester Kommentar
Hallo Thomas1972,
das muss man normalerweise per HTTP-Header in der Anfrage übergeben.
Deswegen benutze ich für Webabfragen keine Webqueries mehr. Das ist eher was für Anfänger die nicht wissen wie sie sonst Daten aus Webseiten extrahieren sollen
Ich würde das mit einem InternetExplorer.Application-Object machen oder mit Powershell, dort geht das z.B. so:
Die benötigten Daten lassen sich dann via RegEx extrahieren oder man nutzt das ParsedHTML-Objekt das das HTML-Dom für einen ansprechbar macht. Dazu habe ich hier im Forum schon einige Beiträge gepostet ...
Mit WebQueries in Excel ist die Angabe eines HTTP-Header IMHO nicht möglich, außer eure Seite bietet das Umschalten per URL-Parameter an..
Grüße Uwe
p.s. hier mal ein kleines Beispiel was man damit so alles machen kann:
(In diesem Beispiel werden die Titel aller Fragen auf der Startseite per Msgbox angezeigt)
VBS
Du siehst, an die Daten kommt man auch auf anderem Wege als nur über Excel
das muss man normalerweise per HTTP-Header in der Anfrage übergeben.
Deswegen benutze ich für Webabfragen keine Webqueries mehr. Das ist eher was für Anfänger die nicht wissen wie sie sonst Daten aus Webseiten extrahieren sollen
Ich würde das mit einem InternetExplorer.Application-Object machen oder mit Powershell, dort geht das z.B. so:
$net = New-Object System.Net.WebClient
$net.Encoding = [System.Text.Encoding]::UTF8
$net.Headers.Add("Accept-Language","de-de")
$data = $net.DownloadString("http://www.google.de")
write-host $data
- Inhalte eines Browsers in die Zwischenablage kopieren per vba (Access
- Excel VBA HTML-Tabelle auslesen
- Powershell-Script, das sich auf Website anmeldet und dann eine andere speichert
Mit WebQueries in Excel ist die Angabe eines HTTP-Header IMHO nicht möglich, außer eure Seite bietet das Umschalten per URL-Parameter an..
Grüße Uwe
p.s. hier mal ein kleines Beispiel was man damit so alles machen kann:
(In diesem Beispiel werden die Titel aller Fragen auf der Startseite per Msgbox angezeigt)
VBS
Set objIE = CreateObject("InternetExplorer.Application")
objIE.Navigate "https://administrator.de"
'Wenn du den IE nicht sehen möchtest schaltest du ihn hier auf 'False'
objIE.Visible = True
'warten bis die Seite komplett geladen ist
While Not objIE.ReadyState = 4
WScript.Sleep 250
' Oder "DoEvents" wenn VBA genutzt wird
Wend
For Each node In objIE.Document.getElementsByClassName("teaser-preview")
strTitle = node.getElementsByTagName("div")(1).firstChild.innerText
MsgBox strTitle
Next
objIE.Quit