Latihan ini menunjukkan cara membaca data dari situs web, dalam hal ini nilai tukar mata uang terkini dari Yahoo.com.
Diasumsikan bahwa pembaca memiliki pita Pengembang yang ditampilkan dan akrab dengan Editor VBA. Jika tidak, silakan Google "Tab Pengembang Excel" atau "Jendela Kode Excel".
Prasyarat termasuk pengetahuan tentang mengisi kotak kombo dan mendefinisikan nama.
Buku kerja terdiri dari dua lembar:
Antarmuka Pengguna:
Kotak kombo Beli dan Jual merujuk pada lembar data lokal di bawah ini.
Tabel di D11 akan ditempel otomatis dari situs web itu sendiri, mempertahankan pemformatan pengguna.
Xlsm untuk latihan ini dapat diunduh di sini.
Membangun Aplikasi Sendiri.
Buat lembar dengan dua kotak kombo. Kotak kombo akan mereferensikan sel pada lembar kedua.
Kotak kombo juga akan memanggil kode untuk membaca situs web, menggunakan Perubahan peristiwa.
Nama mata uang dapat ditempelkan ke lembar kedua (“Mata Uang”) dari daftar di bawah ini, urutannya tergantung pada preferensi pribadi:
| ZAR |
| USD |
| EUR |
| GBP |
| CHF |
| AUD |
| NZD |
| JPY |
| CAD |
| SEK |
| DKK |
| NOK |
| MUR |
| HKD |
| SGD |
| ILS |
| AED |
| INR |
| CNY |
Tempelkan data ke Kolom B dan E.
Tentukan Nama dan gunakan fungsi Indeks sesuai ilustrasi:
Karena nama telah didefinisikan pada lembar data lokal “Mata Uang”, lembar “Utama” hanya merujuk pada nama yang ditentukan untuk mendapatkan nilainya, yaitu =JUAL dan =BUY untuk sel “Utama” E10 dan G10 masing-masing.
Kami akan memprogram Excel untuk membaca web. Namun, ia memiliki proses bawaannya sendiri pada pita Data, sebuah contoh yang mungkin ingin Anda rekam sebagai makro dalam membangun skenario yang berbeda. Perhatikan bahwa konfigurasi komputer atau browser dapat berdampak buruk pada skrip halaman web.
Kode
Sisipkan modul, dan masukkan berikut ini:
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
Simpan buku kerja sebagai tipe xlsm.
Uji kode dengan mengubah nilai kotak kombo, lalu perbaiki format tabel yang ditempelkan (empat tempat desimal, garis kisi, bayangan?).
Korupsi file Excel
Excel kadang-kadang diketahui merusak file saat disimpan, setelah itu mencoba rutinitas pemulihan sendiri yang sering kali, menurut pengalaman saya, tidak berhasil. Ini bisa menjadi bencana bagi pengguna, karena file sumber (mungkin satu-satunya salinan Anda) yang dihancurkan. File Excel yang rusak namun dapat diperbaiki menggunakan alat pihak ketiga, menghemat banyak waktu dan tenaga.
Pengantar Penulis:
Felix Hooker adalah pakar pemulihan data di DataNumen, Inc., yang merupakan pemimpin dunia dalam teknologi pemulihan data, termasuk memperbaiki rar arsip dan produk perangkat lunak pemulihan sql. Untuk informasi lebih lanjut kunjungi www.datanumen.com
