Ahoj všem,
potřeboval bych načíst ve VBA (konkrétně jde o makro/skript v MS Excel 2002) obsah libovolné url do nějaké proměnné, případně souboru, abych s tím obsahem mohl dále manipulovat. Jak se to dělá?
Předem moc děkuji za jakoukoliv (pokud možno relevantní a konstruktivní ) radu!
P.
Jak ve VBA načíst obsah internetové stránky do proměnné?
- CZechBoY
- Master Level 9.5
- Příspěvky: 8813
- Registrován: srpen 08
- Bydliště: Brno
- Pohlaví:
- Stav:
Offline
- Kontakt:
Re: Jak ve VBA načíst obsah internetové stránky do proměnné?
ty chceš jako url do proměnné například dát do proměnné toto : http://www.pc-help.cz/
nebo obsah stránky ? např. <body> <head> ...
nebo obsah stránky ? např. <body> <head> ...
PHP, Nette, MySQL, C#, TypeScript, Python
IntelliJ Idea, Docker, Opera browser, Linux Mint
iPhone XS
Raspberry PI 3 (KODI, Raspbian)
XBox One S, PS 4, nVidia GeForce NOW
IntelliJ Idea, Docker, Opera browser, Linux Mint
iPhone XS
Raspberry PI 3 (KODI, Raspbian)
XBox One S, PS 4, nVidia GeForce NOW
Re: Jak ve VBA načíst obsah internetové stránky do proměnné?
Samozřejmě to druhé.
Na oněch stránkách, o které mi jde, je jistá tabulka. Na každé stránce s jiným obsahem, ale stejným formátem (nadpisy, počet sloupců, snad jen o něco jiný počet řádků).
De facto jde o velký počet takových stránek, jejichž url lze definovat pomocí smyčky. Ale o to nejde, ten algoritmus je jednoduchá smyčka.
O co jde, je skutečnost, že potřebuju do té proměnné (souboru???) načíst ten HTML kód mezi tagem "<table..." a "</table>", zbytek definice stránky (jako <body>, <title>, apod.) v pohodě zvládnu, že jo.
Jak na to?
P.
Na oněch stránkách, o které mi jde, je jistá tabulka. Na každé stránce s jiným obsahem, ale stejným formátem (nadpisy, počet sloupců, snad jen o něco jiný počet řádků).
De facto jde o velký počet takových stránek, jejichž url lze definovat pomocí smyčky. Ale o to nejde, ten algoritmus je jednoduchá smyčka.
O co jde, je skutečnost, že potřebuju do té proměnné (souboru???) načíst ten HTML kód mezi tagem "<table..." a "</table>", zbytek definice stránky (jako <body>, <title>, apod.) v pohodě zvládnu, že jo.
Jak na to?
P.
-
- Level 4
- Příspěvky: 1142
- Registrován: srpen 08
- Pohlaví:
- Stav:
Offline
Re: Jak ve VBA načíst obsah internetové stránky do proměnné?
Na vebu jsem jednou nekde nasel prispevek Jiriho Cihare - Dataspectrum resici nacitani denniho kurzu CNB, uz nevim kde (mozna Pandora).
Mirne modifikovana podoba originalu je zde a muze poslouzit jako voditko:
Mirne modifikovana podoba originalu je zde a muze poslouzit jako voditko:
Kód: Vybrat vše
Option Explicit
Sub DenniKurzyCNB()
Dim Dat As Date, Mena As String, URL As String, objHTTP As Object
Dim PoleTemp, PolePom, i As Integer, j As Byte
Dim Pole(), TargetCll As Range
'
Dat = Format(Now, "dd.mm.yyyy") ' datum pro posledni platny stav kurzu, novy v prac dny po 14:30
'adresa odkazu (CNB)
URL = "http://www.cnb.cz/cs/financni_trhy/devizovy_trh/kurzy_devizoveho_trhu/denni_kurz.txt?date=" & Dat
Set objHTTP = CreateObject("MSXML2.XMLHTTP")
Call objHTTP.Open("GET", URL, False)
objHTTP.Send
'
' 'výpis do okna Immediate
' Debug.Print (objHTTP.responseText)
'
'pole pro vypreparování údajù
PoleTemp = Split(objHTTP.responseText, vbLf) ' novy radek; za posl pol je take vbLf, coz prida prazdnou polozku!
'
' 'výpis do okna Immediate
' i = 0
' Do
' Debug.Print i; " * "; PoleTemp(i)
' i = i + 1
' Loop While i < UBound(PoleTemp)
'
' separace do Pole a vlozeni do listu
Set TargetCll = Worksheets("list2").Range("a1")
ReDim Pole(UBound(PoleTemp), 4)
i = 0
Mena = "EUR"
Do
'************* tato cast jen pro EUR do msgboxu
If InStr(PoleTemp(i), Mena) > 0 Then
PolePom = Split(PoleTemp(i), "|")
MsgBox PolePom(2) & " " & PolePom(3) & " " & PolePom(4)
End If
'************ tato cast pro vsechny meny do listu
PolePom = Split(PoleTemp(i), "|")
j = 0
Do
If i > 1 And j = 4 Then
' ve vypisu je oddelovac desetinnych cisel ",", pro VBA nutno zmenit na "."
' Pole(i, j) = Val(Replace(PolePom(j), ",", "."))
TargetCll.Offset(i, j).Value = Val(Replace(PolePom(j), ",", "."))
Else
Pole(i, j) = PolePom(j)
TargetCll.Offset(i, j).Value = PolePom(j)
End If
j = j + 1
Loop While j < UBound(PolePom) + 1
'***********
i = i + 1
Loop While i < UBound(PoleTemp)
'
TargetCll.Resize(UBound(PoleTemp), 5).Columns.AutoFit
'
End Sub
- mike007
- Master Level 7.5
- Příspěvky: 5860
- Registrován: srpen 07
- Bydliště: Pardubice
- Pohlaví:
- Stav:
Offline
- Kontakt:
Re: Jak ve VBA načíst obsah internetové stránky do proměnné?
jj, je to na Pandoře
Nejlepší hra je Excel!
• Pravidla fóra PC-help • Jak označit téma za vyřešené
»»»»»»»»»»»»»»»»»»»»»»»
UPOZORNĚNÍ - můj Skype, Soukromé zprávy či email neslouží jako tech. podpora.
Dotazy pište do fóra. Od toho tu je.
• Pravidla fóra PC-help • Jak označit téma za vyřešené
»»»»»»»»»»»»»»»»»»»»»»»
UPOZORNĚNÍ - můj Skype, Soukromé zprávy či email neslouží jako tech. podpora.
Dotazy pište do fóra. Od toho tu je.
-
- Mohlo by vás zajímat
- Odpovědi
- Zobrazení
- Poslední příspěvek
-
-
Zablokované internetové stránky na Televizi
od Luminaox » 09 říj 2023 19:47 » v Internet a internetové prohlížeče - 1
- 2453
-
od zeus
Zobrazit poslední příspěvek
09 říj 2023 21:12
-
-
-
Excel - filtr na formát buňky + obsah Příloha(y)
od popcorn » 19 zář 2023 17:07 » v Kancelářské balíky - 0
- 2150
-
od popcorn
Zobrazit poslední příspěvek
19 zář 2023 17:07
-
-
-
Záhada internetové sítě Příloha(y)
od Foidza » 03 říj 2023 15:22 » v Internet a internetové prohlížeče - 7
- 4001
-
od ITCrowd
Zobrazit poslední příspěvek
04 říj 2023 07:57
-
-
-
JavaScript - načtení web stranky do řetězce.
od L.L » 16 bře 2024 10:23 » v Programování a tvorba webu - 4
- 2448
-
od L.L
Zobrazit poslední příspěvek
20 bře 2024 07:29
-
-
- 10
- 2689
-
od 28nitro28
Zobrazit poslední příspěvek
27 srp 2023 09:33
Zpět na “Programování a tvorba webu”
Kdo je online
Uživatelé prohlížející si toto fórum: Žádní registrovaní uživatelé a 25 hostů