randaubienghoc
Thành viên mới
- Tham gia
- 28/1/13
- Bài viết
- 25
- Được thích
- 1
Thân chào các anh/ chị trên diễn đàn,
Do chỉ có chút ít hiểu biết về VBA, nên em mong muốn nhờ anh/ chị giúp đỡ sửa code để giải quyết 3 vấn đề tồn đọng khi gửi email Outlook dựa vào các thông tin từ file Excel:
1. Đính kèm nhiều file theo đường dẫn trong Excel (Theo tiêu chí cùng mã khách hàng (Customer Code) thì gom gửi chung 1 mail và đính kèm các file tương ứng trong cột dữ liệu chứa đường link tới file, bỏ qua các dòng có trạng thái Status "Y").
2. Sao chép và dán vùng dữ liệu từ Excel cột I tới O (gom các mail khác nhau theo tiêu chí mã khách hàng (Customer Code) và giữ nguyên định dạng, không lấy vùng dữ liệu ẩn, tương tự như dùng phím tắt Ctrl + V để dán) vào thân mail, bỏ qua các dòng có trạng thái Status "Y").
3. Chèn chữ ký mặc định của Outlook vào cuối mail (giữ nguyên định dạng).
Em đính kèm file macro và thư mục file ví dụ cần đính kèm vào mail. Rất hy vọng nhận được hỗ trợ từ quý anh/ chị trên diễn đàn.
Em xin cảm ơn ạ.
Do chỉ có chút ít hiểu biết về VBA, nên em mong muốn nhờ anh/ chị giúp đỡ sửa code để giải quyết 3 vấn đề tồn đọng khi gửi email Outlook dựa vào các thông tin từ file Excel:
1. Đính kèm nhiều file theo đường dẫn trong Excel (Theo tiêu chí cùng mã khách hàng (Customer Code) thì gom gửi chung 1 mail và đính kèm các file tương ứng trong cột dữ liệu chứa đường link tới file, bỏ qua các dòng có trạng thái Status "Y").
2. Sao chép và dán vùng dữ liệu từ Excel cột I tới O (gom các mail khác nhau theo tiêu chí mã khách hàng (Customer Code) và giữ nguyên định dạng, không lấy vùng dữ liệu ẩn, tương tự như dùng phím tắt Ctrl + V để dán) vào thân mail, bỏ qua các dòng có trạng thái Status "Y").
3. Chèn chữ ký mặc định của Outlook vào cuối mail (giữ nguyên định dạng).
Em đính kèm file macro và thư mục file ví dụ cần đính kèm vào mail. Rất hy vọng nhận được hỗ trợ từ quý anh/ chị trên diễn đàn.
Em xin cảm ơn ạ.
Mã:
Sub Send_Mails()
Dim sh As Worksheet
Set sh = ThisWorkbook.ActiveSheet
Dim i As Integer
Dim OA As Object
Dim msg As Object
Set OA = CreateObject("outlook.application")
Dim last_row As Integer
last_row = Application.CountA(sh.Range("A:A"))
For i = 2 To last_row
Set msg = OA.createitem(0)
msg.To = sh.Range("A" & i).Value
msg.cc = sh.Range("B" & i).Value
msg.Subject = sh.Range("C" & i).Value
msg.body = sh.Range("D" & i).Value
If sh.Range("E" & i).Value <> "" Then
msg.attachments.Add sh.Range("E" & i).Value
End If
msg.display
sh.Range("F" & i).Value = "Sent"
Next i
MsgBox "All the mails have been sent successfully"
End Sub