Ця вправа показує, як читати дані з веб-сайту, у цьому випадку найсучасніші курси обміну валют з 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
