lấy dữ liệu từ outlook

Liên hệ QC

giaosy

Thành viên thường trực
Tham gia
6/12/06
Bài viết
205
Được thích
144
Các bác giải thích hộ em xem tại sao đoạn code này nó cứ báo lỗi về việc khai báo biến với. Em lấy đoạn code này từ cuốn "lập trình cho các ứng dụng với visualbasic for application vba cho người mới bắt đầu"
PHP:
Sub doc_du_lieu()
Dim ol As Outlook.Application:         Dim ns As Namespace
Dim folder As MAPIForder:              Dim ws As Worksheet
Dim i As Integer
Set ol = CreateObject("Outlook.Application")
Set ns = ol.getnamespace("MAPI")
ns.logon
Set folder = ns.getdefaultfolder(olfolderinbox)
Set ws = Worksheets("nhan thu")
For i = 1 To folder.Item.Count
   With folder.items(i)
        ws.[A1].Offset(i, 0) = sendername
        ws.[A1].Offset(i, 1) = senderEmailaddress
        ws.[A1].Offset(i, 2) = Subject
        ws.[A1].Offset(i, 3) = Size
        ws.[A1].Offset(i, 4) = receivedtime
        ws.[A1].Offset(i, 5) = Left(body, 100)
   end With
Next i
ns.logoff
Set ol = Nothing
End Sub
theo tác giả thì đoạn code này dùng để đọc dữ liệu inbox (của outlook) từ excel.:=\+
 
Các bác giải thích hộ em xem tại sao đoạn code này nó cứ báo lỗi về việc khai báo biến với. Em lấy đoạn code này từ cuốn "lập trình cho các ứng dụng với visualbasic for application vba cho người mới bắt đầu"
Sub doc_du_lieu()
Dim ol As Outlook.Application
Dim ns As Namespace
Dim folder As MAPIForder
Dim ws As Worksheet
Dim i As Integer
Set ol = CreateObject("Outlook.Application")
Set ns = ol.getnamespace("MAPI")
ns.logon
Set folder = ns.getdefaultfolder(olfolderinbox)
Set ws = Worksheets("nhan thu")
For i = 1 To folder.Item.Count
With folder.items(i)
ws.[A1].Offset(i, 0) = sendername
ws.[A1].Offset(i, 1) = senderEmailaddress
ws.[A1].Offset(i, 2) = Subject
ws.[A1].Offset(i, 3) = Size
ws.[A1].Offset(i, 4) = receivedtime
ws.[A1].Offset(i, 5) = Left(body, 100)
endwith
Next i
ns.logoff
Set ol = Nothing
End Sub
theo tác giả thì đoạn code này dùng để đọc dữ liệu inbox (của outlook) từ excel.:=\+

Tác giả không chỉ sai, tại vì bạn làm chưa đúng như hướng dẫn nên bị báo lỗi. Có lẽ bạn chưa thêm References: "Microsoft Outlook 11.0 Object Library" (trong cửa sổ Tools, References chọn thư viện có tên nêu trên - lưu ý phiên bản Outlook có thể khác)

Xem File ví dụ đính kèm theo sách: mở file | chọn enable macro nếu được hỏi | nhấn Alt+F8 chọn Macro và Run.

Thanh Phong
 

File đính kèm

  • Chapter11.xls
    31.5 KB · Đọc: 98
Upvote 0
Kính gửi các bác,

Gia Khuê đã theo đoạn code này để chạy và có sửa lại 1 tí ti.

Gia Khuê sửa thành thế này: ws.[A1].Offset(i, 5) = ReceivedbyName

Gia Khuê nghĩ là nó sẽ lấy được địa chỉ email của những người mà mình gửi đi, tức là lấy địa chỉ email ở To, tuy nhiên, nếu email có Bcc thì nó lại lấy Bcc, còn nếu không có Bcc mà chỉ có CC thì nó lại lấy CC. Nó chỉ lấy To khi mà email không có CC hay BCC thôi ạ.

Hic, email nào của Gia Khuê cũng có BCC hoặc CC hết ạ. Trong khi đó Gia Khuê muốn lấy To cơ ạ.

Các bác giúp Gia Khuê với.

Cám ơn các bác.

PHP:
Sub doc_du_lieu()
Dim ol As Outlook.Application
Dim ns As Namespace:         Dim folder As MAPIForder
Dim ws As Worksheet:         Dim i As Integer
Set ol = CreateObject("Outlook.Application")
Set ns = ol.getnamespace("MAPI")
ns.logon
Set folder = ns.getdefaultfolder(olfolderinbox)
Set ws = Worksheets("nhan thu")
For i = 1 To folder.Item.Count
    With folder.items(i)
        ws.[A1].Offset(i, 0) = sendername
        ws.[A1].Offset(i, 1) = senderEmailaddress
        ws.[A1].Offset(i, 2) = Subject
        ws.[A1].Offset(i, 3) = Size
        ws.[A1].Offset(i, 4) = receivedtime
        ws.[A1].Offset(i, 5) = ReceivedbyName
    end with
Next i
ns.logoff
Set ol = Nothing
End Sub
 
Lần chỉnh sửa cuối:
Upvote 0
Web KT
Back
Top Bottom