Nội dung chính
Quét dữ liệu là kỹ thuật giúp trích xuất thông tin mong muốn từ trang web HTML sang tệp cục bộ có trong máy cục bộ của bạn. Thông thường, một tệp cục bộ có thể tương ứng với một tệp excel, tệp từ hoặc để nói bất kỳ ứng dụng văn phòng nào của Microsoft. Nó giúp trong việc truyền thông tin quan trọng từ trang web.
Việc thu thập dữ liệu trở nên đơn giản khi làm việc trên một dự án dựa trên nghiên cứu hàng ngày và một dự án như vậy hoàn toàn phụ thuộc vào internet và trang web. Để minh họa rõ hơn về chủ đề này, chúng ta hãy lấy ví dụ về một nhà giao dịch hàng ngày chạy macro excel để kéo thông tin thị trường từ một trang web tài chính vào một bảng excel bằng VBA.
Có một số điều kiện nhất định phải được thực hiện trên tệp macro excel trước khi đi vào quá trình xử lý dữ liệu trong excel.
Những điều kiện như sau: –
Bước 1) Mở Macro trên Excel và truy cập tùy chọn nhà phát triển của excel.
Bước 2) Chọn tùy chọn Visual Basic trên thanh công cụ Nhà phát triển.
Bước 3) Chèn một mô-đun mới.
Bước 4) Khởi tạo chương trình con mới
Sub test() End sub
Các mô-đun sẽ có kết quả như sau: –
Bước 5) Truy cập tùy chọn tham chiếu trong tab công cụ và tham khảo Thư viện đối tượng Microsoft HTML và kiểm soát internet của Microsoft.
Các tệp sau đây sẽ được tham chiếu đến mô-đun vì nó giúp mở trình duyệt internet và tạo điều kiện phát triển kịch bản macro.
Bây giờ tệp Excel đã sẵn sàng để tương tác với trình duyệt internet explorer. Bước tiếp theo sẽ là kết hợp các tập lệnh macro sẽ để quét dữ liệu trong HTML.
Bước 1) Khởi tạo biến trong chương trình con như hiển thị bên dưới
Sub test() Dim ie As New InternetExplorer Dim doc As New HTMLDocument
Bước 2) Để mở trình duyệt Internet Explorer bằng VBA, hãy viết i.e. visible=true và nhấn F5.
Sub test() Dim ie As New InternetExplorer Dim doc As New HTMLDocument Ie.visible=true
Các mô-đun sẽ như sau: –
Dưới đây là các bước để mở trang web trong trình duyệt Internet bằng VBA
Bước 1) Khi bạn truy cập trình duyệt Internet Explorer bằng Excel VBA, bước tiếp theo sẽ kết hợp truy cập trang web bằng VBA. Điều này được hỗ trợ bởi Điều hướng thuộc tính, trong đó URL phải ở dưới dạng dấu ngoặc kép trong thuộc tính. Thực hiện theo các bước sau như hiển thị dưới đây.
Sub test() Dim, ie As New InternetExplorer Dim doc As New HTMLDocument Dim ecoll As Object ie.Visible = True ie.navigate"http://demo.guru99.com/test/web-table-element.php" Do DoEvents Loop Until ie.readyState = READYSTATE_COMPLETE
Bước 2) – Nhấn F5 để chạy macro. Trang web sau sẽ được mở như hiển thị sau
Bây giờ, macro excel đã sẵn sàng để thực hiện các chức năng lọc. Bước tiếp theo sẽ hiển thị cách trích xuất thông tin từ trình thám hiểm internet bằng VBA.
Giả sử người giao dịch mỗi ngày muốn truy cập dữ liệu từ trang web hàng ngày. Mỗi lần người giao dịch nhấn nút bấm, nó sẽ tự động kéo dữ liệu vào excel.
Từ trang web trên, cần phải kiểm tra dữ liệu và cách dữ liệu được cấu trúc.
Bước 1) Truy cập mã nguồn HTML bên dưới bằng cách nhấn control + Shift + I
<table class=""> <thead> <tr> <th>Company</th> <th>Group</th> <th>Pre Close (Rs)</th> <th>Current Price (Rs)</th> <th>% Change</th> </tr>
Mã nguồn sẽ như sau: –
Sub test() Dim ie As New InternetExplorer Dim doc As New HTMLDocument Dim ecoll As Object ie.Visible = True ie.navigate "http://demo.guru99.com/test/web-table-element.php" Do DoEvents Loop Until ie.readyState = READYSTATE_COMPLETE Set doc = ie.document
Như có thể thấy rằng dữ liệu được cấu trúc như một Bảng HTML duy nhất. Do đó, để lấy toàn bộ dữ liệu từ bảng html, nó sẽ yêu cầu thiết kế macro thu thập dữ liệu dưới dạng một bộ tài liệu
Bộ sưu tập sau đó sẽ được dán vào excel. Để đạt được, kết quả mong muốn thực hiện các bước dưới đây:
Bước 2) Khởi tạo tài liệu Html trong chương trình con
Mô-đun VBA sẽ trông như sau: –
Bước 3) Khởi tạo bộ tài liệu có trong tài liệu HTML
Mô-đun VBA sẽ trông như sau: –
Sub test() Dim ie As New InternetExplorer Dim doc As New HTMLDocument Dim ecoll As Object ie.Visible = True ie.navigate "http://demo.guru99.com/test/web-table-element.php" Do DoEvents Loop Until ie.readyState = READYSTATE_COMPLETE Set doc = ie.document Set ecoll = doc.getElementsByTagName("table")
Bước 4) Khởi tạo các ô excel với sự trợ giúp của vòng lặp lồng nhau
Mô-đun VBA sẽ trông như sau: –
Sub test() Dim ie As New InternetExplorer Dim doc As New HTMLDocument Dim ecoll As Object ie.Visible = True ie.navigate "http://demo.guru99.com/test/web-table-element.php" Do DoEvents Loop Until ie.readyState = READYSTATE_COMPLETE Set doc = ie.document Set ecoll = doc.getElementsByTagName("table")
Excel có thể được khởi tạo trong phạm vi của trang excel hoặc thông qua thuộc tính ô của trang excel. Để giảm độ phức tạp của tập lệnh VBA, dữ liệu thu thập được tạo thành thuộc tính ô của sheet 1 .
Khi tập lệnh macro đã sẵn sàng, chuyển và gán chương trình con cho excel và thoát khỏi mô-đun của VBA. đặt tên mới cho nó. Như ví dụ sau
Bước 5) Nhấn nút refresh để xuất dữ liệu
Bước 6) So sánh kết quả trong excel với kết quả của trình duyệt internet explorer
Để tìm hiểu thêm nhiều kiến thức về VBA, mời bạn tham dự khóa học VBAG01 – Tuyệt đỉnh VBA – Viết code trong tầm tay Đây là khóa học rất hữu ích dành cho bạn, giúp bạn hiểu một cách bài bản về VBA và cách sử dụng VBA, ứng dụng VBA vào công việc để tăng hiệu quả. Hãy cùng khám phá nào:
Nếu công việc của bạn liên quan nhiều đến quản lý, phân tích dữ liệu và làm báo cáo trên bảng tính thì giỏi Excel thôi chưa đủ. Nếu biết thêm về VBA sẽ giúp bạn tiết kiệm tối đa thời gian làm việc nhờ làm báo cáo tự động, phân tích và xử lý số liệu chính xác tuyệt đối, đặc biệt công cần lọ mọ sửa thủ công,…
Tất tần tật những kiến thức từ cơ bản đến nâng cao về cách sử dụng VBA trong Excel sẽ được đề cập trong khóa học VBAG01: Tuyệt đỉnh VBA - Tự động hóa Excel với lập trình VBA tại Gitiho
Hãy nhấn vào Học thử hoặc Đăng ký ngay!