Как читать данные с веб-страниц в Интернете с помощью Excel VBA

Поделись сейчас:

В этом упражнении показано, как считывать данные с веб-сайта, в данном случае актуальные курсы обмена валют с Yahoo.com.

Предполагается, что у читателя отображается лента «Разработчик» и он знаком с редактором VBA. Если нет, погуглите «Excel Developer Tab» или «Excel Code Window».

Предварительные требования включают знание заполнения полей со списком и определения имен..

Рабочая тетрадь состоит из двух листов:

Пользовательский интерфейс:Пользовательский интерфейс

Поле со списком «Купить» и «Продать» ссылается на приведенный ниже локальный лист данных.

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

Xlsm для этого упражнения можно скачать здесь.

Создание приложения самостоятельно.

Создайте лист с двумя полями со списком. Поля со списком будут ссылаться на ячейки на втором листе.

Поле со списком также вызовет код для чтения веб-сайта, используя Изменить мероприятие.

Названия валют можно вставить во второй лист («Валюты») из списка ниже, порядок сортировки зависит от личных предпочтений:

ZAR
USD
EUR
GBP
Швейцарский франк
AUD
NZD
JPY
CAD
SEK
DKK
Вероятно
СТЕНА
HKD
SGD
ILS
САД
INR
CNY

Вставьте данные в столбцы B и E.

Определите имена и используйте индексные функции, как показано на рисунке:Покупка и продажа валюты

Поскольку имена были определены в локальном листе данных «Валюты», лист «Основной» должен просто ссылаться на определенные имена, чтобы получить значение, т.е. = ПРОДАТЬ и = ПОКУПАТЬ для «Основных» ячеек 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

Поделись сейчас:

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