Як читати дані з веб-сторінок в Інтернеті за допомогою Excel VBA

Поділитися зараз:

Ця вправа показує, як читати дані з веб-сайту, у цьому випадку найсучасніші курси обміну валют з Yahoo.com.

Передбачається, що на пристрої для читання відображається стрічка розробника та він знайомий з редактором VBA. Якщо ні, будь ласка, перегляньте Google “Вкладка розробника Excel” або “Вікно коду Excel”.

Передумови включають знання про заповнення комбінованих вікон та визначення імен.

Робоча книга складається з двох аркушів:

Інтерфейс користувача:Інтерфейс користувача

У комбінованих полях «Купуй і продавай» посилаються на місцеві паспорти нижче.

Таблиця на D11 буде автоматично вставлена ​​з самого веб-сайту, зберігаючи користувацьке форматування.Купуйте і продавайте валюти

XLSM для цієї вправи можна завантажити тут.

Створення додатка самостійно.

Створіть аркуш із двома комбінованими полями. Поля зі списком посилатимуться на клітинки на другому аркуші.

Складові поля також будуть викликати код для читання веб-сайту, використовуючи Редагувати події.

Назви валют можна вставити на другий аркуш (“Валюти”) зі списку нижче, порядок сортування залежить від особистих переваг:

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

Вставте дані в стовпці B та E.

Визначте імена та використовуйте функції покажчика відповідно до ілюстрації:Купуйте і продавайте валюти

Оскільки імена були визначені в локальному паспорті даних "Валюти", аркуш "Main" має просто посилатися на визначені імена, щоб отримати значення, тобто = SELL і = BUY для "Main" комірок E10 та G10 відповідно.

Ми будемо програмувати Excel для читання Інтернету. Однак він має власний вбудований процес на стрічці даних, екземпляр якого ви можете записати як макрос при побудові різних сценаріїв. Зверніть увагу, що конфігурації комп’ютера чи браузера можуть негативно вплинути на сценарії веб-сторінок.

Кодекс

Вставте модуль і введіть наступне:

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

Збережіть книгу як тип xlsm.

Перевірте код, змінивши значення комбінованих полів, а потім вдосконаліть формати вставленої таблиці (чотири знаки після коми, лінії сітки, затінення?).

Пошкодження файлів Excel

Excel часом пошкоджує файли при збереженні, після чого робить спробу власної процедури відновлення, яка, на мій досвід, часто просто не працює. Це може бути згубним для користувача, оскільки знищується вихідний файл (можливо, ваша єдина копія). Пошкоджені файли Excel однак можна відремонтувати за допомогою сторонніх інструментів, заощадивши значний час та зусилля.

Вступ автора:

Фелікс Хукер - фахівець з відновлення даних у DataNumen, Inc., яка є світовим лідером у галузі технологій відновлення даних, в тому числі ремонт rar архів та програмні продукти для відновлення sql. Для отримання додаткової інформації відвідайте WWW.datanumen.com

Поділитися зараз:

Коментарі закриті.