Как да четем данни от онлайн уеб страници с Excel VBA

Споделете сега:

Това упражнение показва как да четете данни от уебсайт, в този случай актуални валутни курсове от Yahoo.com.

Предполага се, че четецът показва лентата за програмисти и е запознат с редактора на VBA. Ако не, моля Google „Раздел за разработчици на Excel“ или „Прозорец на кода на Excel“.

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

Работната книга се състои от два листа:

Потребителският интерфейс:Потребителският интерфейс

Комбинираните полета „Купувай и продавай“ се позовават на местния лист с данни по-долу.

Таблицата на D11 ще бъде автоматично поставена от самия уебсайт, запазвайки потребителското форматиране.Купувайте и продавайте валути

Xlsm за това упражнение може да бъде изтеглен тук.

Изграждане на приложението сами.

Създайте лист с две комбинирани полета. Комбинираните полета ще препращат клетки на втори лист.

Комбо полетата също ще извикат кода, за да прочетат уебсайта, използвайки Промяна събитие.

Имената на валутите могат да бъдат поставени във втория лист („Валути“) от списъка по-долу, като редът на сортиране е въпрос на лични предпочитания:

ZAR
Долар
EUR
GBP
CHF
AUD
NZD
JPY
CAD
SEK
DKK
NOK
MUR
HKD
SGD
ILS
AED
INR
CNY

Поставете данните в колони Б и Е.

Определете имена и използвайте функциите за индекс според илюстрацията:Купувайте и продавайте валути

Тъй като имената са дефинирани в локалния лист с данни „Валути“, лист „Основен“ трябва просто да се позовава на дефинираните имена, за да получи стойността, т.е. = ПРОДАВА и = КУПЕТЕ съответно за „Основни“ клетки 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

Споделете сега:

Коментарите са забранени.