Jak czytać dane ze stron internetowych online za pomocą Excel VBA

Podziel się teraz:

To ćwiczenie pokazuje, jak odczytywać dane ze strony internetowej, w tym przypadku aktualne kursy wymiany walut z Yahoo.com.

Zakłada się, że czytelnik ma wyświetloną wstążkę programisty i zna edytor VBA. Jeśli nie, wybierz Google „Excel Developer Tab” lub „Excel Code Window”.

Wymagania wstępne obejmują znajomość wypełniania pól kombi i definiowania nazw.

Skoroszyt składa się z dwóch arkuszy:

Interfejs użytkownika:Interfejs użytkownika

Pola kombi Kup i Sprzedaj odnoszą się do lokalnego arkusza danych poniżej.

Tabela w D11 zostanie automatycznie wklejona z samej witryny, zachowując formatowanie użytkownika.Kupuj i sprzedawaj waluty

Plik xlsm do tego ćwiczenia można pobrać w tym miejscu.

Samodzielne tworzenie aplikacji.

Utwórz arkusz z dwoma polami kombi. Pola kombi będą odwoływać się do komórek na drugim arkuszu.

Pola kombi będą również przywoływać kod, aby odczytać stronę internetową, używając , zmiana zdarzenie.

Nazwy walut można wkleić do drugiego arkusza („Waluty”) z poniższej listy, porządek sortowania jest kwestią osobistych preferencji:

ZAR
USD
EUR
GBP
CHF
AUD
NZD
JPY
CAD
SEK
DKK
NOK
MUR
HKD
SGD
ILS
AED
INR
CNY

Wklej dane do kolumn B i E.

Zdefiniuj nazwy i użyj funkcji indeksu zgodnie z ilustracją:Kupuj i sprzedawaj waluty

Ponieważ nazwy zostały zdefiniowane w lokalnym arkuszu danych „Currencies”, arkusz „Main” musi jedynie odnosić się do zdefiniowanych nazw, aby uzyskać wartość, tj. =SPRZEDAJ i =KUP dla komórek „Główne” odpowiednio E10 i G10.

Będziemy programować Excela do czytania w sieci. Ma jednak własny, wbudowany proces na wstążce danych, którego wystąpienie można nagrać jako makro podczas tworzenia różnych scenariuszy. Pamiętaj, że konfiguracje komputera lub przeglądarki mogą niekorzystnie wpływać na skrypty stron internetowych.

Kod

Wstaw moduł i wprowadź następujące informacje:

Option Explicit

Sub Ticker()
  Dim currBuy As String
  Dim currSell As String

  Range("D11:F14").ClearContents      'prepare the ground for the web data
  currBuy = Range("BUY")          'get variable values from Defined Names previously set up
  currSell = Range("SELL")
  With ActiveSheet.QueryTables.Add(Connection:= _
    "URL;http://finance.yahoo.com/q?s=" & currBuy & currSell & "=X", Destination:=Range("$D$11"))
    .Name = "q?s=" & currSell & currBuy & "=X"
    .FieldNames = True
    .RowNumbers = False
    .FillAdjacentFormulas = False
    .PreserveFormatting = True
    .RefreshOnFileOpen = False
    .BackgroundQuery = True
    .RefreshStyle = xlInsertDeleteCells
    .SavePassword = False
    .SaveData = True
    .AdjustColumnWidth = True
    .RefreshPeriod = 0
    .WebSelectionType = xlSpecifiedTables
    .WebFormatting = xlWebFormattingNone
    .WebTables = """table1"""
    .WebPreFormattedTextToColumns = True
    .WebConsecutiveDelimitersAsOne = True
    .WebSingleBlockTextImport = False
    .WebDisableDateRecognition = False
    .WebDisableRedirections = False
    .Refresh BackgroundQuery:=False
  End With
End sub

Sub DropDown2_Change()    'This event will call the routine above. Object name might differ.
    Call Ticker
End Sub

Sub DropDown1_Change()
    Call Ticker
End Sub

Zapisz skoroszyt jako typ xlsm.

Przetestuj kod, zmieniając wartości pól kombi, a następnie ulepsz formaty wklejonej tabeli (cztery miejsca po przecinku, linie siatki, cieniowanie?).

Uszkodzenie plików Excel

Excel czasami uszkadza pliki podczas zapisywania, a następnie próbuje własnej procedury odzyskiwania, która często, z mojego doświadczenia, po prostu nie działa. Może to być katastrofalne dla użytkownika, ponieważ zniszczeniu ulega plik źródłowy (prawdopodobnie Twoja jedyna kopia). Uszkodzone pliki Excela można jednak naprawić za pomocą narzędzi innych firm, oszczędzając znaczną ilość czasu i wysiłku.

Wprowadzenie autora:

Felix Hooker jest ekspertem w dziedzinie odzyskiwania danych w DataNumen, Inc., która jest światowym liderem w technologiach odzyskiwania danych, w tym naprawa rar archiwum i oprogramowanie do odzyskiwania sql. po więcej informacji odwiedź www.datanumen.com

Podziel się teraz:

Możliwość dodawania komentarzy nie jest dostępna.