Thủ Thuật
  • TOP Thủ Thuật
    • Thủ Thuật Internet
    • Thủ Thuật Máy Tính
    • Thủ Thuật Tiện Ích
    • Thủ Thuật Phần Mềm
  • Chia Sẻ Kiến Thức
    • Học Excel
    • Học Word
    • Học Power Point
  • Games
  • Kênh Công Nghệ
  • Facebook
  • WordPress
  • SEO
No Result
View All Result
Thủ Thuật
  • TOP Thủ Thuật
    • Thủ Thuật Internet
    • Thủ Thuật Máy Tính
    • Thủ Thuật Tiện Ích
    • Thủ Thuật Phần Mềm
  • Chia Sẻ Kiến Thức
    • Học Excel
    • Học Word
    • Học Power Point
  • Games
  • Kênh Công Nghệ
  • Facebook
  • WordPress
  • SEO
No Result
View All Result
Thủ Thuật
No Result
View All Result
Home Chia Sẻ Kiến Thức Học Excel

Trích xuất bảng từ email Outlook sang Excel bằng VBA

Trích xuất bảng từ email Outlook sang Excel bằng VBA
6k
SHARES
19.5k
VIEWS
Share on FacebookShare on Twitter

Nội Dung Bài Viết

Toggle
  • Chuẩn bị trước khi bắt đầu
    • Phân tích vấn đề
    • Thiết lập VBA trong Excel
  • Code VBA trích xuất dữ liệu
    • Khai báo địa chỉ email
    • Khai báo đối tượng Outlook
    • Khởi động Outlook
    • Lấy email từ hộp thư đến (“Inbox”)
    • Khai báo đối tượng HTML
    • Trích xuất bảng từ HTML
    • Lấy dữ liệu và ghi vào Excel
    • Giải phóng đối tượng
  • Toàn bộ code VBA
  • Kết luận

Bạn muốn trích xuất dữ liệu từ bảng trong email Outlook sang Excel một cách tự động? Bài viết này sẽ hướng dẫn bạn cách thực hiện điều đó bằng VBA (Visual Basic for Applications), giúp tiết kiệm thời gian và công sức. Phương pháp này đặc biệt hữu ích khi bạn cần xử lý số lượng lớn email chứa bảng dữ liệu. Bạn cần có kiến thức VBA cơ bản để hiểu rõ code.

Minh họa email Outlook chứa bảng dữ liệuMinh họa email Outlook chứa bảng dữ liệu

Chuẩn bị trước khi bắt đầu

Phân tích vấn đề

Mục tiêu là trích xuất dữ liệu từ bảng trong email Outlook và đưa vào Excel. Do Outlook và Excel đều thuộc bộ Microsoft Office, việc tương tác giữa chúng rất thuận tiện nhờ VBA. Ví dụ, một email có thể chứa nhiều bảng với cấu trúc khác nhau, và chúng ta cần xử lý tất cả chúng.

Thiết lập VBA trong Excel

Trước tiên, cần kích hoạt hai thư viện hỗ trợ:

  1. Microsoft Outlook Object Library: Cung cấp các đối tượng và phương thức để tương tác với Outlook.
  2. Microsoft HTML Object Library: Xử lý nội dung HTML của email.
Xem thêm:  Tạo QR Code và Barcode trong Excel một cách dễ dàng

Để kích hoạt, trong VBA Editor (Alt + F11), vào Tools > References… và chọn hai thư viện trên.

Kích hoạt thư viện trong VBA EditorKích hoạt thư viện trong VBA Editor

Sau đó, tạo một module mới để viết code VBA.

Tạo module mới trong VBA EditorTạo module mới trong VBA Editor

Code VBA trích xuất dữ liệu

Khai báo địa chỉ email

Khai báo địa chỉ email cần trích xuất dữ liệu:

Const myMail As String = "<Địa chỉ email của bạn>"

Khai báo đối tượng Outlook

Khai báo các đối tượng Outlook cần sử dụng:

Dim oApp As Outlook.Application
Dim oMapi As Outlook.MAPIFolder
Dim oMail As Outlook.MailItem

Khởi động Outlook

Khởi động ứng dụng Outlook:

On Error Resume Next
Set oApp = GetObject(, "OUTLOOK.APPLICATION")
If (oApp Is Nothing) Then Set oApp = CreateObject("OUTLOOK.APPLICATION")
On Error GoTo 0

Lấy email từ hộp thư đến (“Inbox”)

Lấy email từ hộp thư đến. Nếu email nằm ở thư mục khác, hãy thay đổi "inbox" thành tên thư mục tương ứng.

Set oMapi = oApp.GetNamespace("MAPI").Folders(myMail).Folders("inbox")
Set oMail = oMapi.Items(oMapi.Items.Count) ' Lấy email cuối cùng trong hộp thư đến

Khai báo đối tượng HTML

Khai báo các đối tượng để xử lý HTML:

Dim html As MSHTML.HTMLDocument
Set html = New MSHTML.HTMLDocument
Dim htmlNodes As MSHTML.IHTMLElementCollection

Trích xuất bảng từ HTML

Lấy nội dung HTML của email và trích xuất các bảng:

With html
    .Body.innerHTML = oMail.HTMLBody
    Set htmlNodes = .getElementsByTagName("table")
End With

Lấy dữ liệu và ghi vào Excel

Lặp qua từng bảng, từng hàng, từng ô và ghi dữ liệu vào Excel:

Dim x As Long, y As Long, i As Long, tblbStartRow As Long

For i = 0 To htmlNodes.Length - 1
    tblbStartRow = (x + 1)
    Range("A" & tblbStartRow).Value = "Table " & (i + 1)

    For x = 0 To htmlNodes(i).Rows.Length - 1
        For y = 0 To htmlNodes(i).Rows(x).Cells.Length - 1
            Range("C1").Offset(x + tblbStartRow - 1, y).Value = htmlNodes(i).Rows(x).Cells(y).innerText
        Next y
    Next x
Next i

Ảnh gif minh họa VBAẢnh gif minh họa VBA

Giải phóng đối tượng

Giải phóng các đối tượng sau khi sử dụng xong:

Set oApp = Nothing
Set oMapi = Nothing
Set oMail = Nothing
Set html = Nothing
Set htmlNodes = Nothing

Toàn bộ code VBA

Option Explicit

Sub importOutlookTableToExcel()

    Const myMail As String = "<Địa chỉ email của bạn>"

    Dim oApp As Outlook.Application
    Dim oMapi As Outlook.MAPIFolder
    Dim oMail As Outlook.MailItem

    On Error Resume Next
    Set oApp = GetObject(, "OUTLOOK.APPLICATION")
    If (oApp Is Nothing) Then Set oApp = CreateObject("OUTLOOK.APPLICATION")
    On Error GoTo 0

    Set oMapi = oApp.GetNamespace("MAPI").Folders(myMail).Folders("inbox")
    Set oMail = oMapi.Items(oMapi.Items.Count)

    Dim html As MSHTML.HTMLDocument
    Set html = New MSHTML.HTMLDocument
    Dim htmlNodes As MSHTML.IHTMLElementCollection

    With html
        .Body.innerHTML = oMail.HTMLBody
        Set htmlNodes = .getElementsByTagName("table")
    End With

    Dim x As Long, y As Long, i As Long, tblbStartRow As Long

    For i = 0 To htmlNodes.Length - 1
        tblbStartRow = (x + 1)
        Range("A" & tblbStartRow).Value = "Table " & (i + 1)

        For x = 0 To htmlNodes(i).Rows.Length - 1
            For y = 0 To htmlNodes(i).Rows(x).Cells.Length - 1
                Range("C1").Offset(x + tblbStartRow - 1, y).Value = htmlNodes(i).Rows(x).Cells(y).innerText
            Next y
        Next x
    Next i

    Set oApp = Nothing
    Set oMapi = Nothing
    Set oMail = Nothing
    Set html = Nothing
    Set htmlNodes = Nothing

End Sub

Kết luận

VBA cung cấp một giải pháp hiệu quả để trích xuất dữ liệu bảng từ email Outlook sang Excel. Hy vọng bài viết này giúp bạn tự động hóa công việc và tiết kiệm thời gian. Hãy tìm hiểu thêm về VBA để khai thác tối đa tiềm năng của nó.

Đánh Giá Bài Viết
Tuyết Nhi

Tuyết Nhi

Tôi là Tuyết Nhi - Nữ phóng viên trẻ đến từ Hà Nội. Với niềm đam mê công nghệ, khoa học kỹ thuật, tôi yêu thích và muốn chia sẻ đến mọi người những trải nghiệm, kinh nghiệm về các lĩnh vực công nghệ, kỹ thuật... Rất mong được quý độc giả đón nhận ❤️.

Related Posts

Tổng Hợp Dữ Liệu Từ Nhiều Sheet Excel Vào Một Sheet
Học Excel

Tổng Hợp Dữ Liệu Từ Nhiều Sheet Excel Vào Một Sheet

Định Dạng Có Điều Kiện Trong Excel: Hướng Dẫn Chi Tiết
Học Excel

Định Dạng Có Điều Kiện Trong Excel: Hướng Dẫn Chi Tiết

Hàm Excel Quan Trọng Trong Kế Toán Tổng Hợp
Học Excel

Hàm Excel Quan Trọng Trong Kế Toán Tổng Hợp

Mảng VBA trong Excel: Hướng dẫn toàn diện
Học Excel

Mảng VBA trong Excel: Hướng dẫn toàn diện

Discussion about this post

Trending.

Cách Xóa Dấu Nháy Đơn (‘) Trong Excel

Cách Xóa Dấu Nháy Đơn (‘) Trong Excel

Chia đôi màn hình Excel: So sánh dữ liệu dễ dàng với Split

Chia đôi màn hình Excel: So sánh dữ liệu dễ dàng với Split

Tạo Dữ Liệu Ngẫu Nhiên trong Excel với Hàm RANDBETWEEN và VLOOKUP

Tạo Dữ Liệu Ngẫu Nhiên trong Excel với Hàm RANDBETWEEN và VLOOKUP

Mẹo giảm mỡ bụng sau sinh hiệu quả

Mẹo giảm mỡ bụng sau sinh hiệu quả

Hàm LOOKUP trong Excel: Cú pháp và Cách Sử Dụng

Hàm LOOKUP trong Excel: Cú pháp và Cách Sử Dụng

Giới Thiệu

Thủ Thuật

➤ Website đang trong quá trình thử nghiệm AI biên tập, mọi nội dung trên website chúng tôi không chịu trách nhiệm. Bạn hãy cân nhắc thêm khi tham khảo bài viết, xin cảm ơn!

Chuyên Mục

➤ TOP Thủ Thuật

➤ Chia Sẻ Kiến Thức

➤ Kênh Công Nghệ

➤ SEO

➤ Games

Liên Kết

➤

➤

➤

➤

➤

Liên Hệ

➤ TP. Hải Phòng, Việt Nam

➤ 0931. 910. JQK

➤ Email: [email protected]

Website này cũng cần quảng cáo, không có tiền thì viết bài làm sao  ” Đen Vâu – MTP ”

DMCA.com Protection Status

© 2025 Thủ Thuật - Website chia sẻ kiến thức công nghệ hàng đầu Việt Nam

No Result
View All Result
  • TOP Thủ Thuật
    • Thủ Thuật Internet
    • Thủ Thuật Máy Tính
    • Thủ Thuật Tiện Ích
    • Thủ Thuật Phần Mềm
  • Chia Sẻ Kiến Thức
    • Học Excel
    • Học Word
    • Học Power Point
  • Games
  • Kênh Công Nghệ
  • Facebook
  • WordPress
  • SEO

© 2025 Thủ Thuật - Website chia sẻ kiến thức công nghệ hàng đầu Việt Nam