quanluu
Thành viên gắn bó
![](/diendan/data/PhoToDanhHieu/pip.gif)
![](/diendan/data/PhoToDanhHieu/pip.gif)
![](/diendan/data/PhoToDanhHieu/pip.gif)
Chào các bạn GPE,
Không biết nội dung này có bị trùng không nhưng mình có đọc qua bài viết này, và thấy có các vấn đề sau:
- Muốn đưa dữ liệu dạng bảng vào trong nội dung mail, chúng ta phải sử dụng định dạng html
- Hàm chuyển đổi của bạn @hungpecc1 hơi khó hiểu
Từ vấn đề trên mình xin chia sẻ cách đưa bảng vào trong nội dung mail bằng chính cấu trúc html luôn.
Để làm được điều đó thì xin nói qua cấu trúc html để tạo 1 bảng dữ liệu. Html sử dụng các thẻ tag và chúng đi theo cặp (bắt đầu - kết thúc)
Bạn tham khảo tại đây, mình chỉ lướt qua cơ bản
- <table></table>: thẻ định nghĩa bảng
+ Tạo bảng mà có đường kẻ thì cấu trúc sau: <table border=1 ></table>
+ Tạo bảng để các cột tự co dãn theo nội dung:
-<tr></tr>: thẻ định nghĩa dòng
+ Màu nền cho dòng: <tr bgcolor=#b9c9fe></tr> ,trong đó #b9c9fe là mã màu
- <th></th>: thẻ tiêu đề cột
- <td></td>: thẻ định nghĩa cột.
Đây là 1 ví dụ cho bạn dễ hiểu cấu trúc
Bảng dữ liệu có đường bao và tô màu dòng tiêu đề
![1536131990283.png 1536131990283.png](https://www.giaiphapexcel.com/diendan/data/attachments/160/160197-320680992851b0e88ebcd71fa8dbaf6e.jpg?hash=MgaAmShRsO)
Dựa vào cách tạo 1 bảng bằng html thì mình có thể code để tạo cấu trúc html cho 1 bảng bất kỳ bằng hàm sau:
Hàm trả về chuỗi html của bảng dữ liệu
![1536132691937.png 1536132691937.png](https://www.giaiphapexcel.com/diendan/data/attachments/160/160198-991c03eac5db3bf8da14b92564e86679.jpg?hash=mRwD6sXbO_)
Bây giờ việc của bạn là chỉ cần gán nó vào code gửi mail là được
MÌnh chia sẻ trong giới hạn kiến thức của mình, nếu có sai sót mong các bạn bỏ qua.
Không biết nội dung này có bị trùng không nhưng mình có đọc qua bài viết này, và thấy có các vấn đề sau:
- Muốn đưa dữ liệu dạng bảng vào trong nội dung mail, chúng ta phải sử dụng định dạng html
- Hàm chuyển đổi của bạn @hungpecc1 hơi khó hiểu
Từ vấn đề trên mình xin chia sẻ cách đưa bảng vào trong nội dung mail bằng chính cấu trúc html luôn.
Để làm được điều đó thì xin nói qua cấu trúc html để tạo 1 bảng dữ liệu. Html sử dụng các thẻ tag và chúng đi theo cặp (bắt đầu - kết thúc)
Bạn tham khảo tại đây, mình chỉ lướt qua cơ bản
- <table></table>: thẻ định nghĩa bảng
+ Tạo bảng mà có đường kẻ thì cấu trúc sau: <table border=1 ></table>
+ Tạo bảng để các cột tự co dãn theo nội dung:
-<tr></tr>: thẻ định nghĩa dòng
+ Màu nền cho dòng: <tr bgcolor=#b9c9fe></tr> ,trong đó #b9c9fe là mã màu
- <th></th>: thẻ tiêu đề cột
- <td></td>: thẻ định nghĩa cột.
Đây là 1 ví dụ cho bạn dễ hiểu cấu trúc
Bảng dữ liệu có đường bao và tô màu dòng tiêu đề
![1536131990283.png 1536131990283.png](https://www.giaiphapexcel.com/diendan/data/attachments/160/160197-320680992851b0e88ebcd71fa8dbaf6e.jpg?hash=MgaAmShRsO)
Dựa vào cách tạo 1 bảng bằng html thì mình có thể code để tạo cấu trúc html cho 1 bảng bất kỳ bằng hàm sau:
HTML:
Function taobangdl(vungdl As Range)
Dim ar, i, j, htmlstring, align, dataformat
ar = vungdl
' dinh nghia bang voi duong vien
htmlstring = "<table border = 1>" & vbNewLine & "<tr bgcolor=#b9c9fe>" 'bgcolor=#b9c9fe mau nen dong dau tien - dong tieu de
'tao tieu de
For j = 1 To UBound(ar, 2)
htmlstring = htmlstring & "<th>" & ar(1, j) & "</th>"
Next
htmlstring = htmlstring & "</tr>"
'fill du lieu cac dong
For i = 2 To UBound(ar)
htmlstring = htmlstring & vbNewLine & "<tr>" ' moi dong bat dau la <tr>
' vong lap nay la dien du lieu cho cac cot cua 1 dong - dong i
For j = 1 To UBound(ar, 2)
htmlstring = htmlstring & "<td>" & ar(i, j) & "</td>"
Next
htmlstring = htmlstring & "</tr>" ' ket thuc 1 dong
Next
taobangdl = htmlstring & vbNewLine & "</table>"
End Function
Hàm trả về chuỗi html của bảng dữ liệu
![1536132691937.png 1536132691937.png](https://www.giaiphapexcel.com/diendan/data/attachments/160/160198-991c03eac5db3bf8da14b92564e86679.jpg?hash=mRwD6sXbO_)
Bây giờ việc của bạn là chỉ cần gán nó vào code gửi mail là được
HTML:
.HTMLBody = taobangdl(rng)
.Send
MÌnh chia sẻ trong giới hạn kiến thức của mình, nếu có sai sót mong các bạn bỏ qua.