VBA Jak pobierać dane ze stron web do Excel


1. W jaki sposób pobrać dane ze strony internetowej do Excela?

W tym artykule dowiesz się w jaki sposób pobierać dane ze stron www do Excela bez VBA oraz z wykorzystaniem VBA.  Excel bez instalacji dodatków posiada możliwość importu danych ze stron sieci web. By skorzystać z tej funkcjonalności wchodzimy w Excelu w zakładkę dane i w lewym górnym rogu ekranu klikamy Pobieranie danych zewnętrznych, a następnie Z sieci Web.

Excel VBA Przykłady - dane ze stron www

Excel VBA Przykłady – dane ze stron www

Po kliknięciu tej opcji powinno wyświetlić nam się okno przeglądarki, w której wpisujemy właściwy adres strony. Nie przejmuj się wyskakującymi błędami – one będą występować w tej przeglądarce. Nie jest to przecież Google Chrome. W momencie, gdy nasza strona jest już wgrana w Excelowej przeglądarce możemy od razu kliknąć przycisk Importuj w prawym dolnym rogu ekranu, co zaimportuje zawartość strony do arkusza Excel. Po kliknięciu przycisku importuj zostaniesz zapytany też, w które miejsce w skoroszycie chcesz pobrać zawartość strony.

Excel VBA Przykłady - importowanie strony web do Excela

Excel VBA Przykłady – importowanie strony web do Excela

Dane zaimportowane w ten sposób możesz już obrabiać w Excel w dowolny sposób. Podczas importu możesz także wybrać, czy zaimportowane dane powinny zawierać formatowanie strony, czy też powinny być zwykłym tekstem. Możesz to ustawić w prawym górnym rogu w opcjach przeglądarki:

Excel VBA Przykłady - pobieranie strony www do Excel

Excel VBA Przykłady – pobieranie strony www do Excel

2. Importowanie zawartości strony makrem VBA Excel

Jeśli chciałbyś zautomatyzować działanie importowania treści ze stron www do Excela, najlepiej skorzystać jest z VBA w Excelu. Makro oparte na VBA przyda się także, gdy Twoja strona ma wiele podstron, a Ty chcesz zaimportować je wszystkie. By zaimportować stronę web do Excela za pomocą VBA najlepiej, gdy nagrasz jednorazowo makro importujące stronę, a następnie przerobisz kod tego makra. Kod takiego makra dla mojej strony będzie wyglądał następująco:

Jak widzisz w powyższym kodzie linia .CommandType została zakomentowana. Mogła ona powodować błędy przy imporcie danych.

3. Zapętlenie kodu VBA – wgrywanie wielu podstron

Excel VBA Przykłady - dane z sieci WEB

Excel VBA Przykłady – dane z sieci WEB

Zapewne zastanawiasz się, w jaki sposób mógłbyś zaimportować dane ze stron www, które są zamieszczone na wielu podstronach, jak np katalog, bądź lista. Jest to oczywiście możliwe i nie wymaga dużego wysiłku. Jak widzisz linki na mojej stronie głównej wyglądają następująco:

  • https://tomaszkenig.pl/page/2/
  • https://tomaszkenig.pl/page/3/
  • https://tomaszkenig.pl/page/4/
  • (…)
  • https://tomaszkenig.pl/page/n/

Nic prostszego, wystarczy zapętlić makro. Pamiętaj, że wgrywane do arkusza treści stron nie powinny na siebie nachodzić. Powinieneś wgrywać dane jedne pod drugimi. Możesz w tym wypadku zrobić przy pomocy pętli odstęp pomiędzy danymi w postaci liczby wierszy. Możesz też skorzystać z kodu makra wyszukującego ostatni wypełniony wiersz, który publikowałem w tym artykule: ostatni wiersz VBA. Teraz jedyne, co powinieneś zrobić to zapętlić kod i dodać licznik odnoszący się do numeru podstrony. Dla przykładu, gdybym chciał ściągnąć 8 kolejnych stron na moim adresie (tomaszkenig.pl), modyfikuję kod w następujący sposób:

Podobne przykłady praktycznego użycia języka VBA w Excelu zamieszczam na tej stronie: VBA Przykłady. Przy okazji zapraszam do przejścia kursu VBA mojego autorstwa, znajdziesz go pod tym linkiem: Kurs VBA. Poniżej plik Excel z omawianym przykładem:

excel_vba_dane_ze_stron_web.xlsm

Dodaj komentarz

Twój adres email nie zostanie opublikowany.