Cách Lấy Bảng Trên Web Đưa Vào Excel, Lấy Dữ Liệu Từ Web Vào Excel

Anh/ chị trên diễn đàn thân mến,Em rất mong được anh/ chị gỡ rối giúp em về 2 vấn đề trong lập trình VBA khi chạy lấy dữ liệu từ web:
vào Excel, với mục đích tự động lấy thông tin theo dõi container về cảng Cát Lái, hỗ trợ việc theo dõi thông tin hàng hóa về cảng, lĩnh vực xuất nhập khẩu.* Bảng dưới đây từ file Excel là kết quả chạy macro để lấy dữ liệu về thời gian, vị trí, sự kiện của mỗi container trong cột Container. Chi tiết như file:
* Dữ liệu từ web, nếu nhập thủ công theo các bước tra cứu thông tin container: 1- chọn khu vực cảng Cát Lái, 2- nhập thông tin số container, 3- bỏ chọn mục “chỉ vòng luân chuyển cuối”, 4- click chọn “Tìm kiếm”, 5- lấy dữ liệu liên quan (thời gian, vị trí, sự kiện) từ bảng dữ liệu.

Đang xem: Cách lấy bảng trên web đưa vào excel

Sub PullDataFromWeb()Dim IE As ObjectDim doc As HTMLDocumentDim lastRow As IntegerSet IE = CreateObject(“InternetExplorer.Application”)IE.Visible = True “hien cua so IEIE.navigate “https://eport.saigonnewport.com.vn/Pages/Common/Containers_new”Do While IE.Busy Or IE.readyState 4 “doi IE chay xongApplication.Wait DateAdd(“s”, 1, Now)LoopSet doc = IE.documentWith ActiveSheetlastRow = .Range(“B” & .Rows.Count).End(xlUp).Row “dong cuoi cung trong cot B containerEnd WithOn Error Resume NextFor intRow = 2 To lastRow “tu dong toi dongDim rng As RangeSet rng = Range(“I2:I” & lastRow)For Each cell In rngIf cell.Value = “Y” ThenEnd IfNext cellIE.document.getElementById(“txtItemNo_I”).Value = ThisWorkbook.Sheets(“Sheet1”).Range(“B” & intRow).Value “so contdoc.getElementById(“cbSite_VI”).Value = “CTL” “cang Cat Lai CTLdoc.getElementById(“chkInYard_I”).Checked = Falsedoc.getElementById(“ContentPlaceHolder2_btnSearch”).Click “click SearchDo While IE.Busy Or IE.readyState 4Application.Wait DateAdd(“s”, 1, Now)LoopstrFindContainer = doc.getElementById(“ContentPlaceHolder2_lblNotice”).innerTextThisWorkbook.Sheets(“Sheet1”).Range(“H” & intRow).Value = strFindContainerstrEventtime1 = doc.getElementById(“grdContainer_DXDataRow0”).Cells(0).innerTextstrEventtype1 = doc.getElementById(“grdContainer_DXDataRow0”).Cells(1).innerTextstrLocation1 = doc.getElementById(“grdContainer_DXDataRow0”).Cells(2).innerTextstrEventtime2 = doc.getElementById(“grdContainer_DXDataRow1”).Cells(0).innerTextstrEventtype2 = doc.getElementById(“grdContainer_DXDataRow1”).Cells(1).innerTextThisWorkbook.Sheets(“Sheet1”).Range(“C” & intRow).Value = strEventtime1ThisWorkbook.Sheets(“Sheet1”).Range(“D” & intRow).Value = strEventtype1ThisWorkbook.Sheets(“Sheet1”).Range(“E” & intRow).Value = strLocation1ThisWorkbook.Sheets(“Sheet1”).Range(“F” & intRow).Value = strEventtime2ThisWorkbook.Sheets(“Sheet1”).Range(“G” & intRow).Value = strEventtype2Do While IE.Busy Or IE.readyState 4Application.Wait DateAdd(“s”, 1, Now)LoopNextIE.QuitSet IE = Nothing “Cleaning upSet objElement = NothingSet objCollection = NothingApplication.StatusBar = “”Application.DisplayAlerts = TrueEnd Sub

*

lingocard.vnAdministrator
Thành viên BQT
Bạn có thể bớt chút thời gian để trình bày lại cho dễ hiểu không ạ?Nếu bạn không biết cách upload ảnh lên diễn đàn, bạn vui lòng tham khảo topic sau:
Bạn cần đăng nhập để thấy link
.Bạn lưu ý phải sử dụng thẻ Code khi viết code trên forum. Xin xem mục 4 trong
Bạn cần đăng nhập để thấy link
. Lần này tôi đã sửa lại bài viết cho bạn rồi. Bạn bỏ qua mục này.Bạn nên có file demo. Bạn có thể upload file lên google drive
hoặc mediafire.com rồi dẫn link về diễn đàn.

Xem thêm: Khóa Học Edumall Đang Miễn Phí, Mời Bạn Học Ngay, Review Khóa Học Trực Tuyến Tại Edumall

Một bài viết trình bày dễ hiểu là một bài viết sử dụng hình minh họa trực quan. Một bài viết chỉ toàn chữ sẽ khiến người khác không muốn đọc.1. Trang này có phải đăng ký tài khoản không bạn?2. Mình truy cập nhưng có thấy mục nào ghi là cảng Cát Lái đâu nhỉ.

Xem thêm: Đồ Án Thiết Kế Nội Thất Chung Cư, Hình Ảnh Workshop Cbs

Muốn code cho web thì người code cần biết cái web đó như nào. Thông tin thao tác thủ công của bạn, không giúp chúng tôi tái hiện được thao tác bằng tay (Tên cảng không tìm thấy, mã Container không biết nhập vào đó là gì để ra dữ liệu). Do đó không thể hỗ trợ code được.

Xem thêm bài viết thuộc chuyên mục: Excel