วิธีที่ 1 – นำเข้าข้อมูลเฉพาะจากเว็บไซต์ไปยัง Excel VBA MsgBox
ขั้นตอน: ป>
- ไปที่ นักพัฒนา แท็บจาก Ribbon
- คลิกที่ Visual Basic จาก โค้ด หมวดหมู่เพื่อเปิด Visual Basic Editor . หรือกด ALT +F11 เพื่อเปิด Visual Basic Editor .

- สิ่งนี้จะปรากฏใน Visual Basic Editor .
- ไปที่เครื่องมือ เมนูและคลิกที่ ข้อมูลอ้างอิง .

- ข้อมูลอ้างอิง – VBAProject กล่องโต้ตอบจะปรากฏขึ้น
- เลื่อนลงเล็กน้อยและเปิดใช้งาน Microsoft สองตัว ห้องสมุด . ทำเครื่องหมาย ไลบรารีวัตถุ Microsoft HTML และ การควบคุมอินเทอร์เน็ตของ Microsoft .
- คลิก ตกลง .

- คลิกที่ โมดูล จาก แทรก แถบเมนูแบบเลื่อนลง

- สิ่งนี้จะสร้าง โมดูล ในสมุดงานของคุณ
- คัดลอกและวาง VBA รหัสที่แสดงด้านล่าง
รหัส VBA: ป>
Sub Import_SpecificData()
Dim request As Object
Dim response As String
Dim html As New HTMLDocument
Dim website As String
Dim total As Variant
website = "https://en.wikipedia.org/wiki/2022_FIFA_World_Cup"
Set request = CreateObject("MSXML2.XMLHTTP")
request.Open "GET", website, False
request.setRequestHeader "If-Modified-Since", "Mon, 14 Nov 2022 00:00:00 GMT"
request.send
response = StrConv(request.responseBody, vbUnicode)
html.body.innerHTML = response
total = html.getElementsByClassName("wikitable")(0).innerText
MsgBox total
End Sub - เรียกใช้โค้ดโดยคลิกที่ RubSub หรือกดแป้นพิมพ์ลัด F5 .

- การดำเนินการนี้จะดึงข้อมูลที่นำเข้าข้อมูลเหล่านั้นจากเว็บไซต์และแสดงไว้ใน MsgBox .

คำอธิบายโค้ด VBA ป>
Sub Import_SpecificData() ย่อย เป็นส่วนหนึ่งของโค้ดที่ใช้จัดการงานในโค้ด แต่จะไม่ส่งคืนค่าใดๆ เป็นที่รู้จักกันว่าขั้นตอนย่อย เราตั้งชื่อขั้นตอนของเราว่า Import_SpecificData() .
Dim request As Object
Dim response As String
Dim html As New HTMLDocument
Dim website As String
Dim total As Variant ติ่มซำ คำสั่งใน VBA หมายถึง “ประกาศ ” ซึ่งจะต้องใช้ในการประกาศตัวแปร
website = "https://en.wikipedia.org/wiki/2022_FIFA_World_Cup"
Set request = CreateObject("MSXML2.XMLHTTP") สิ่งนี้จะสร้างออบเจ็กต์ที่จะทำการร้องขอหน้าเว็บ
request.Open "GET", website, False จากบล็อกนี้เราจะรู้ว่าต้องไปที่ไหนและไปที่นั่นอย่างไร คุณไม่จำเป็นต้องเปลี่ยนบรรทัด คุณสามารถคัดลอกบรรทัดนี้โดยตรงในขณะที่นำเข้าข้อมูลประเภทใดก็ได้จากเว็บไซต์ใดๆ ก็ตาม
request.setRequestHeader "If-Modified-Since", "Mon, 14 Nov 2022 00:00:00 GMT" เราจะได้รับข้อมูลใหม่จากเว็บไซต์ของเรา
request.send บรรทัดนี้ส่งคำขอไปยังหน้าเว็บ
response = StrConv(request.responseBody, vbUnicode) เราได้รับข้อมูลการตอบสนองของหน้าเว็บเป็นตัวแปร
html.body.innerHTML = response บรรทัดของโค้ดจะวางหน้าเว็บลงในออบเจ็กต์ HTML เพื่อให้การอ้างอิงข้อมูลง่ายขึ้น
total = html.getElementsByClassName("wikitable")(0).innerText ด้วยบรรทัดนี้ เราจะได้รวมองค์ประกอบที่ระบุของหน้าเว็บ เราจำเป็นต้องได้รับชื่อชั้นเรียน ในการรับชื่อคลาสขององค์ประกอบนั้น เราต้องปฏิบัติตามคำแนะนำง่ายๆ
- ไปที่เว็บไซต์และ คลิกขวา บนบล็อกนั้น
- จากนั้น คลิก ตรวจสอบ .

- สิ่งนี้จะแสดง HTML และ CSS องค์ประกอบของเว็บไซต์นั้น คลิกที่ชั้นเรียนที่คุณต้องการเรียนและวางไว้ใน html.getElementsByClassName(“wikitable”) .

MsgBox total ซึ่งจะแสดงผลรวมใน Microsoft หน้าต่าง.
End Sub การดำเนินการนี้จะสิ้นสุดขั้นตอน
วิธีที่ 2 – คัดลอกข้อมูลจากเว็บไซต์ไปยัง Excel
ขั้นตอน: ป>
- คลิกที่ไอคอนเล็กๆ ที่ บันทึก มาโคร .

- มาโครบันทึก กล่องโต้ตอบจะปรากฏขึ้น
- ตั้งชื่อมาโคร เราตั้งชื่อมาโครว่า Get_Data .
- คลิก ตกลง .

- ไปที่ข้อมูล แท็บจาก Ribbon
- คลิกที่ จากเว็บ ภายใต้รับและแปลงข้อมูล .

- จากเว็บ หน้าต่างจะแสดงขึ้น
- โดยการคลิก CTRL +วี บนแป้นพิมพ์ของคุณ ให้วาง URL ใน URL พื้นที่หลังจากเลือก พื้นฐาน .
- กด ตกลง ปุ่ม.

- เครื่องนำทาง กล่องโต้ตอบจะปรากฏขึ้น
- เลือกตารางข้อมูลใดก็ได้จาก ตัวเลือกการแสดงผล เมนูที่เหมาะกับความต้องการของคุณ
- เลือก “โหลดไปที่ ”

- นำเข้าข้อมูล กล่องโต้ตอบจะปรากฏขึ้น
- เลือก ตาราง จาก “เลือกวิธีที่คุณต้องการดูข้อมูลนี้ในสมุดงานของคุณ ” และคลิกที่แผ่นงานที่มีอยู่ .
- เลือกเซลล์ที่คุณต้องการนำเข้าข้อมูล
- คลิก ตกลง .

- การดำเนินการนี้จะนำเข้าข้อมูลจากเว็บไซต์

- เลือกทั้งแผ่นงานแล้วคลิก ลบ ปุ่ม Microsoft เอ็กเซล กล่องโต้ตอบจะปรากฏขึ้น ตรวจสอบให้แน่ใจว่าคุณคลิก ไม่ .

- การดำเนินการนี้จะ ลบ ข้อมูลทั้งหมด
- ไปที่ข้อมูล จาก Ribbon แล้วคลิก รีเฟรชทั้งหมด ภายใต้ การสืบค้นและการเชื่อมต่อ .
- รับข้อมูลทั้งหมดกลับมาในเวิร์กชีต

- เปิด Ribbon และเลือก นักพัฒนาซอฟต์แวร์ จากเมนูแบบเลื่อนลง
- เลือก Visual Basic เพื่อเปิด Visual Basic Editor . หรือ Visual Basic Editor ยังสามารถเข้าถึงได้โดยการกด ALT +F11 .
- ในโมดูล คุณจะได้รับ แมโคร VBA ที่นั่น
รหัส VBA: ป>
Option Explicit
Sub Get_Data()
'
' Get_Data Macro
'
'
Sheets("Get Data").Select
Range("N11").Select
ActiveWorkbook.Queries.Add Name:="2022 FIFA bidding (majority 12 votes)", _
Formula:= _
"let" & Chr(13) & "" & Chr(10) & " Source = Web.Page(Web.Contents(""https://en.wikipedia.org/wiki/2022_FIFA_World_Cup""))," & Chr(13) _
& "" & Chr(10) & " Data1 = Source{1}[Data]," & Chr(13) & "" & Chr(10) & " #""Changed Type"" = Table.TransformColumnTypes (Data1,{{""Bidders"", type text}, {""Votes Round 1"", type text}, {""Votes Round 2"", type text}, {""Votes Round 3"", type text}, {""Votes Round 4"", type text}})" & Chr(13) & "" & Chr(10) & "in" & Chr(13) & "" & Chr(10) & " #""Changed Type"""
Workbooks("Import Data from Website .xlsm").Connections.Add2 _
"Query - 2022 FIFA bidding (majority 12 votes)", _
"Connection to the '2022 FIFA bidding (majority 12 votes)' query in the workbook." _
, Array( _
"OLEDB;Provider=Microsoft.Mashup.OleDb.1;Data Source=$Workbook$;Location=""2022 FIFA bidding (majority 12 votes)"";Extended Properties=""""" _
, ""), "SELECT * FROM [2022 FIFA bidding (majority 12 votes)]", 2
Application.CommandBars("Queries and Connections").Visible = False
ActiveWorkbook.Queries.Add Name:="2022 FIFA bidding (majority 12 votes) (2)" _
, Formula:= _
"let" & Chr(13) & "" & Chr(10) & " Source = Web.Page(Web.Contents(""https://en.wikipedia.org/wiki/2022_FIFA_World_Cup""))," & Chr(13) & "" & Chr(10) & " Data1 = Source{1}[Data]," & Chr(13) & "" & Chr(10) & " #""Changed Type"" = Table.TransformColumnTypes(Data1,{{""Bidders"", type text}, {""Votes Round 1"", type text}, {""Votes Round 2"", type text}, {""Votes Round 3"", type text}, {""Votes Round 4"", type text}})" & Chr(13) & "" & Chr(10) & "in" & Chr(13) & "" & Chr(10) & " #""Changed Type"""
With ActiveSheet.ListObjects.Add(SourceType:=0, Source:=Array( _
"OLEDB;Provider=Microsoft.Mashup.OleDb.1;Data Source=$Workbook$;Location=""2022 FIFA bidding (majority 12 votes) (2)"";Extended Propertie" _
, "s="""""), Destination:=Range("$B$2")).QueryTable
.CommandType = xlCmdSql
.CommandText = Array( _
"SELECT * FROM [2022 FIFA bidding (majority 12 votes) (2)]")
.RowNumbers = False
.FillAdjacentFormulas = False
.PreserveFormatting = True
.RefreshOnFileOpen = False
.BackgroundQuery = True
.RefreshStyle = xlInsertDeleteCells
.SavePassword = False
.SaveData = True
.AdjustColumnWidth = True
.RefreshPeriod = 0
.PreserveColumnInfo = True
.ListObject.DisplayName = "_2022_FIFA_bidding__majority_12_votes___2"
.Refresh BackgroundQuery:=False
End With
Columns("A:A").ColumnWidth = 2.86
Selection.Borders(xlDiagonalDown).LineStyle = xlNone
Selection.Borders(xlDiagonalUp).LineStyle = xlNone
With Selection.Borders(xlEdgeLeft)
.LineStyle = xlContinuous
.ColorIndex = 0
.TintAndShade = 0
.Weight = xlThin
End With
With Selection.Borders(xlEdgeTop)
.LineStyle = xlContinuous
.ColorIndex = 0
.TintAndShade = 0
.Weight = xlThin
End With
With Selection.Borders(xlEdgeBottom)
.LineStyle = xlContinuous
.ColorIndex = 0
.TintAndShade = 0
.Weight = xlThin
End With
With Selection.Borders(xlEdgeRight)
.LineStyle = xlContinuous
.ColorIndex = 0
.TintAndShade = 0
.Weight = xlThin
End With
With Selection.Borders(xlInsideVertical)
.LineStyle = xlContinuous
.ColorIndex = 0
.TintAndShade = 0
.Weight = xlThin
End With
With Selection.Borders(xlInsideHorizontal)
.LineStyle = xlContinuous
.ColorIndex = 0
.TintAndShade = 0
.Weight = xlThin
End With
Columns("G:G").ColumnWidth = 12
Range("M26").Select
Application.CommandBars("Queries and Connections").Visible = False
Cells.Select
Selection.ListObject.QueryTable.Delete
Selection.ClearContents
Range("B2:F9").Select
Selection.Borders(xlDiagonalDown).LineStyle = xlNone
Selection.Borders(xlDiagonalUp).LineStyle = xlNone
With Selection.Borders(xlEdgeLeft)
.LineStyle = xlContinuous
.ColorIndex = 0
.TintAndShade = 0
.Weight = xlThin
End With
With Selection.Borders(xlEdgeTop)
.LineStyle = xlContinuous
.ColorIndex = 0
.TintAndShade = 0
.Weight = xlThin
End With
With Selection.Borders(xlEdgeBottom)
.LineStyle = xlContinuous
.ColorIndex = 0
.TintAndShade = 0
.Weight = xlThin
End With
With Selection.Borders(xlEdgeRight)
.LineStyle = xlContinuous
.ColorIndex = 0
.TintAndShade = 0
.Weight = xlThin
End With
With Selection.Borders(xlInsideVertical)
.LineStyle = xlContinuous
.ColorIndex = 0
.TintAndShade = 0
.Weight = xlThin
End With
With Selection.Borders(xlInsideHorizontal)
.LineStyle = xlContinuous
.ColorIndex = 0
.TintAndShade = 0
.Weight = xlThin
End With
Selection.Borders(xlDiagonalDown).LineStyle = xlNone
Selection.Borders(xlDiagonalUp).LineStyle = xlNone
Selection.Borders(xlEdgeLeft).LineStyle = xlNone
Selection.Borders(xlEdgeTop).LineStyle = xlNone
Selection.Borders(xlEdgeBottom).LineStyle = xlNone
Selection.Borders(xlEdgeRight).LineStyle = xlNone
Selection.Borders(xlInsideVertical).LineStyle = xlNone
Selection.Borders(xlInsideHorizontal).LineStyle = xlNone
Range("B2").Select
End Sub

- นี่คือโค้ดมาโครอัตโนมัติ
วิธีการนำเข้าข้อมูลเว็บโดยใช้แท็บข้อมูลใน Excel
ขั้นตอน: ป>
- วาง URL ในเซลล์ C4 ในแผ่นงานข้อมูลการนำเข้าของเรา
- คัดลอก URL โดยการกด CTRL +ค .

- ไปที่ข้อมูล แท็บจาก Ribbon
- คลิกที่ จากเว็บ ภายใต้รับและแปลงข้อมูล .

- หน้าต่างชื่อ จากเว็บ จะปรากฏขึ้น
- เลือก พื้นฐาน และใน URL สนาม, วาง URL โดยการกด CTRL +วี จากแป้นพิมพ์ของคุณ
- คลิกที่ ตกลง ปุ่ม.

- สิ่งนี้จะแสดง นาวิเกเตอร์ กล่องโต้ตอบ
- เลือกตารางข้อมูลใด ๆ ตามความต้องการของคุณจาก ตัวเลือกการแสดงผล .
- คลิกที่ โหลด .

- การดำเนินการนี้จะนำเข้าข้อมูลที่เลือกจากเว็บไซต์นั้นและโหลดลงในไฟล์ Excel ของคุณ

ดาวน์โหลดหนังสือแบบฝึกหัด ป>
คุณสามารถดาวน์โหลดสมุดงานและฝึกฝนร่วมกับพวกเขาได้
บทความที่เกี่ยวข้อง
- Excel VBA:การขูดเว็บด้วย Chrome
- Excel VBA เพื่อขูดตารางจากเว็บไซต์
- วิธีการขูดเว็บโดยไม่ต้องใช้เบราว์เซอร์ด้วย Excel VBA