Chuyển đổi tiếng Việt để có thể gởi email

Liên hệ QC

MinhKhai

Giải pháp Ếc-xào
Tham gia
16/4/08
Bài viết
937
Được thích
571
Trước hết, xin chúc mọi người trong diễn đàn có dịp nghỉ lễ vui vẻ
Em thu nhặt được đoạn code VBA gửi email từ Excel không cần qua MS Outlook. Việc gửi email diễn ra tốt đẹp,
Tuy nhiên khác với gửi qua Outlook, nội dung bằng chữ tiếng Việt gửi không qua Outlook đều bị hỏng.
Em được biết VBA không hỗ trợ Unicode, nhưng nghe nói trong diễn đàn có hàm chuyển đổi tiếng Việt. Em đã tìm kiếm hàm chuyển đổi nhưng chưa biết cách áp dụng.
Rất mong các bác đi qua có thể mách nước hỗ trợ.
Em xin cảm ơn

(File đính kèm chưa có hàm chuyển đổi)1555236321371.png

215287
 

File đính kèm

Lần chỉnh sửa cuối:
Trước hết, xin chúc mọi người trong diễn đàn có dịp nghỉ lễ vui vẻ
Em thu nhặt được đoạn code VBA gửi email từ Excel không cần qua MS Outlook. Việc gửi email diễn ra tốt đẹp,
Tuy nhiên khác với gửi qua Outlook, nội dung bằng chữ tiếng Việt gửi không qua Outlook đều bị hỏng.
Em được biết VBA không hỗ trợ Unicode, nhưng nghe nói trong diễn đàn có hàm chuyển đổi tiếng Việt. Em đã tìm kiếm hàm chuyển đổi nhưng chưa biết cách áp dụng.
Rất mong các bác đi qua có thể mách nước hỗ trợ.
Em xin cảm ơn

(File đính kèm chưa có hàm chuyển đổi)View attachment 215287

View attachment 215287

Chào anh,
Biết thêm được đoạn code gởi email không cần outlook của anh. :)

Chuyện xử lý nội dung tiếng Việt, anh thử thay đoạn code này thành
Mã:
            .textBody = Sheets("Data").Range("C10").Value & vbNewLine & vbNewLine & _
                Sheets("Data").Range("C11").Value & vbNewLine & vbNewLine & _
                Sheets("Data").Range("C12").Value

Thành đoạn
Mã:
           .CreateMHTMLBody Replace("file://D:/files/Minh Khai/htmlbodyemail.htm", " ", "%20")
Trước đó ra word soạn thảo nội dung email và lưu lại dạng htm như file đính kèm.

Thân
OverAC
 

File đính kèm

Upvote 0
Nếu những cái bạn gõ trên sheet là unicode thì chả phải làm gì nhiều, quá đơn giản. Chỉ cần thêm 1 dòng.

Hãy thay đoạn
Mã:
With EmailMsg
    <code của bạn>
bằng
Mã:
With EmailMsg
    .bodypart.Charset = "utf-8"
    <code của bạn>

Tức thêm dòng .bodypart.Charset = "utf-8"
 
Upvote 0
Chào anh,
Biết thêm được đoạn code gởi email không cần outlook của anh. :)

Chuyện xử lý nội dung tiếng Việt, anh thử thay đoạn code này thành
Mã:
            .textBody = Sheets("Data").Range("C10").Value & vbNewLine & vbNewLine & _
                Sheets("Data").Range("C11").Value & vbNewLine & vbNewLine & _
                Sheets("Data").Range("C12").Value

Thành đoạn
Mã:
           .CreateMHTMLBody Replace("file://D:/files/Minh Khai/htmlbodyemail.htm", " ", "%20")
Trước đó ra word soạn thảo nội dung email và lưu lại dạng htm như file đính kèm.

Thân
OverAC
Cảm ơn gợi ý của anh.
Bài đã được tự động gộp:

Nếu những cái bạn gõ trên sheet là unicode thì chả phải làm gì nhiều, quá đơn giản. Chỉ cần thêm 1 dòng.

Hãy thay đoạn
Mã:
With EmailMsg
    <code của bạn>
bằng
Mã:
With EmailMsg
    .bodypart.Charset = "utf-8"
    <code của bạn>

Tức thêm dòng .bodypart.Charset = "utf-8"
Tuyệt vời.
Không thể nói gì hơn, phương án xử lý ngắn gọn, dễ dàng.
Một lần nữa chân thành cảm ơn anh.
 
Upvote 0
Web KT

Bài viết mới nhất

Back
Top Bottom