Cách tự động kết hợp thư thông qua VBA trong Microsoft Excel
Trong bài này, chúng ta sẽ tìm hiểu cách tự động phối thư bằng cách sử dụng VBA trong Microsoft Excel.
Kết hợp thư: – Đây là nguồn để hợp nhất thông tin của dữ liệu thành văn bản và sau đó in tài liệu. Để thực hiện thao tác này, chúng tôi sử dụng Microsoft Word.
Hãy cùng hiểu với một bài tập đơn giản: – Chúng tôi có một định dạng thư trong trang tính Báo cáo và chúng tôi muốn áp dụng kết hợp thư thông qua VBA, trong đó chúng tôi cũng muốn thay đổi các chi tiết của thư.
Chúng tôi có 2 tờ. 1 sheet chứa dữ liệu với thông tin chi tiết về người mà chúng tôi muốn gửi thư. Trong dữ liệu đầu tiên, cột A chứa Tên, cột B chứa địa chỉ đường phố, cột C chứa thành phố, vùng cột D và cột E và cột F chứa mã bưu chính. Có một nút lệnh để di chuyển trong bảng báo cáo.
2 ^ nd ^ sheet có định dạng chữ cái với 2 nút lệnh; một nút để di chuyển trên bảng dữ liệu và nút lệnh thứ hai dùng để trộn thư
Đầu tiên, chúng ta sẽ viết mã VBA cho nút lệnh của Dữ liệu chính. Chúng ta cần làm theo các bước sau: – * Đầu tiên chúng ta sẽ chèn nút lệnh trong trang tính.
-
Chuyển đến tab Nhà phát triển và sau đó chèn nút Lệnh từ Activexcontrol.
-
Đổi tên nút Command với tên “Letter”, và bây giờ gán macro được đề cập bên dưới: – Private Sub Main_data_Click ()
Worksheets (“Báo cáo”). Kích hoạt Phạm vi (“A19”). Hiển thị End Sub Bây giờ, chúng ta sẽ chèn nút lệnh thứ hai trong trang Báo cáo và gán macro để di chuyển trên trang đầu tiên. Chúng ta cần làm theo các bước sau: – * Đổi tên nút Command với tên “Data” và gán macro được đề cập bên dưới: – Private Sub CommandButton2_Click ()
Worksheets (“Main_Data”). Kích hoạt Phạm vi (“A1”). Hiển thị End Sub Bây giờ chúng ta sẽ viết mã chính cho phối thư bằng cách làm theo các bước dưới đây: – Chèn nút lệnh và đổi tên nó thành “Letter Print”, sau đó gán mã được đề cập dưới đây: – Private Sub CommandButton1_Click ()
Dim StartrowAs Integer, lastrow As Integer Dim MsgAs String Dim TotalrecordsAs String Dim name As String, Street_AddressAs String, thành phố As String, khu vực As String, quốc gia As String, bưu chính As String Totalrecords = “= counta (Main_Data! A: A)”
Range (“L1”) = Totalrecords Dim mydate As Date Set WRP = Sheets (“Báo cáo”)
mydate = Date WRP.Range (“A9”) = mydate WRP.Range (“A9”). NumberFormat = “[$ -F800] dddd, mmmm, dd, yyyy”
WRP.Range (“A9”). HorizontalAlignment = xlLeft Startrow = InputBox (“Nhập bản ghi đầu tiên để in.”)
lastrow = InputBox (“Nhập bản ghi cuối cùng để in.”)
Nếu Startrow> lastrow thì Msg = “ERROR” & vbCrLf & “Hàng bắt đầu phải nhỏ hơn hàng cuối cùng”
Msgbox Msg, vbCritical, “ExcelTip”
End If For i = Startrow To lastrow name = Sheets (“Main_data”). Ô (i, 1)
Street_Address = Sheets (“Main_data”). Ô (i, 2)
city = Sheets (“Main_data”). Ô (i, 3)
region = Sheets (“Main_data”). Các ô (i, 4)
country = Sheets (“Main_data”). Các ô (i, 5)
Post = Sheets (“Main_data”). Ô (i, 6)
Trang tính (“Báo cáo”). Phạm vi (“A7”) = tên & vbCrLf & Street_Address & vbCrLf & thành phố & khu vực & quốc gia & vbCrLf & Trang tính bưu điện (“Báo cáo”). Phạm vi (“A11”) = “Kính gửi” & “” & tên & “,”
CheckBox1 = True If CheckBox1 Then ActiveSheet.PrintPreview Else ActiveSheet.PrintOut End If Next i End Sub Sub Code Giải thích: – Đầu tiên, chúng ta sẽ xác định các biến sau đó chúng ta sẽ xác định ngày và định dạng ngày, sau đó chúng ta sẽ xác định hàng cuối cùng và hàng bắt đầu . Sau đó, chúng tôi đã tạo hộp thông báo để truyền thông điệp. Sau đó, chúng tôi sẽ xác định dữ liệu và phạm vi mà chúng tôi muốn nắm bắt trong thư.
-
Để chạy mã, nhấn phím F5 trên bàn phím.
-
Sau đó, bạn phải nhập điểm ghi đầu tiên. Sau đó, bạn sẽ nhận được hộp thông báo mới để nhập bản ghi cuối cùng của điểm.
-
Và, sau đó bạn sẽ nhận được tài liệu được hiển thị dưới đây
-
Thư sẽ được cập nhật theo các chi tiết được đề cập trong dữ liệu chính.
Đây là cách chúng ta có thể tự động phối thư thông qua VBA trong Microsoft Excel.