วิธีอ่านข้อมูลจากเว็บเพจออนไลน์ด้วย Excel VBA

แบ่งปันเลย:

แบบฝึกหัดนี้จะแสดงวิธีการอ่านข้อมูลจากเว็บไซต์ ในกรณีนี้คืออัตราแลกเปลี่ยนสกุลเงินล่าสุดจาก Yahoo.com

สมมติว่าผู้อ่านมี Ribbon ของนักพัฒนาแสดงอยู่และคุ้นเคยกับ VBA Editor มิฉะนั้นโปรดใช้“ แท็บนักพัฒนา Excel” ของ Google หรือ“ หน้าต่างรหัส Excel”

ข้อกำหนดเบื้องต้นรวมถึงความรู้เกี่ยวกับการเติมกล่องคำสั่งผสมและการกำหนดชื่อ.

สมุดงานประกอบด้วยสองแผ่น:

ส่วนต่อประสานผู้ใช้:ส่วนติดต่อผู้ใช้

กล่องคำสั่งผสมซื้อและขายอ้างอิงเอกสารข้อมูลท้องถิ่นด้านล่าง

ตารางที่ D11 จะถูกวางโดยอัตโนมัติจากเว็บไซต์ โดยคงการจัดรูปแบบผู้ใช้ไว้ซื้อและขายสกุลเงิน

สามารถดาวน์โหลด xlsm สำหรับแบบฝึกหัดนี้ได้ Good Farm Animal Welfare Awards.

การสร้างแอปพลิเคชันด้วยตัวเอง

สร้างแผ่นงานที่มีกล่องคำสั่งผสมสองกล่อง กล่องคำสั่งผสมจะอ้างอิงเซลล์บนแผ่นงานที่สอง

กล่องคำสั่งผสมจะเรียกใช้โค้ดเพื่ออ่านเว็บไซต์โดยใช้ เปลี่ยนแปลง เหตุการณ์

สามารถวางชื่อสกุลเงินลงในแผ่นงานที่สอง (“สกุลเงิน”) จากรายการด้านล่างได้ การเรียงลำดับจะขึ้นอยู่กับความชอบส่วนตัว:

ZAR
USD
ยูโร
ปอนด์อังกฤษ
CHF
ดอลลาร์ออสเตรเลีย
NZD
เยนญี่ปุ่น
ดอลลาร์แคนาดา
SEK
DKK
NOK
MUR
ดอลลาร์ฮ่องกง
ดอลลาร์สิงคโปร์
ILS
AED
รูปีอินเดีย
หยวนจีน

วางข้อมูลลงในคอลัมน์ B และ E

กำหนดชื่อและใช้ฟังก์ชันดัชนีตามภาพประกอบ:ซื้อและขายสกุลเงิน

เนื่องจากชื่อได้รับการกำหนดไว้ในเอกสารข้อมูลท้องถิ่น "สกุลเงิน" แผ่นงาน "หลัก" จึงมีเพียงการอ้างอิงถึงชื่อที่กำหนดเพื่อรับค่า เช่น =SELL และ =BUY สำหรับเซลล์ "หลัก" E10 และ G10 ตามลำดับ

เราจะเขียนโปรแกรม Excel ให้อ่านเว็บได้ อย่างไรก็ตาม มีกระบวนการในตัวของตัวเองบน Data Ribbon ซึ่งเป็นอินสแตนซ์ที่คุณอาจต้องการบันทึกเป็นแมโครในการสร้างสถานการณ์ที่แตกต่างกัน โปรดทราบว่าการกำหนดค่าคอมพิวเตอร์หรือเบราว์เซอร์อาจส่งผลเสียต่อสคริปต์ของหน้าเว็บ

รหัส

ใส่โมดูลและป้อนข้อมูลต่อไปนี้:

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 ที่เสียหาย อย่างไรก็ตามสามารถซ่อมแซมได้โดยใช้เครื่องมือของบุคคลที่สาม ซึ่งช่วยประหยัดเวลาและความพยายามได้มาก

บทนำผู้เขียน:

Felix Hooker เป็นผู้เชี่ยวชาญด้านการกู้คืนข้อมูลใน DataNumen, Inc. ซึ่งเป็นผู้นำระดับโลกด้านเทคโนโลยีการกู้คืนข้อมูล ได้แก่ ซ่อมแซม rar เก็บ และผลิตภัณฑ์ซอฟต์แวร์กู้คืน sql ดูข้อมูลเพิ่มเติมได้ที่ wwwdatanumenด้วย.

แบ่งปันเลย:

ความเห็นถูกปิด