Gửi email sổ làm việc Excel - Mẹo Excel

Mục lục

Cảm ơn Katherine, người đã gửi câu hỏi cho mẹo Excel tuần này:

Tôi muốn đặt một nút biểu mẫu trên một trang tính Excel mà khi được nhấp vào, nó sẽ gửi cùng một trang tính Excel qua email cho ai đó.

Để gửi toàn bộ cuốn sách đến [email protected] với một dòng chủ đề cụ thể, bạn sẽ sử dụng macro Excel này.

Sub SendIt() Application.Dialogs(xlDialogSendMail).Show arg1:="[email protected]", _ arg2:="This goes in the subject line" End Sub

Có một biểu tượng thanh công cụ cho phép bạn thêm một nút lệnh. Làm theo các bước sau để thêm nó vào thanh công cụ hiện có:

  • Xem> Thanh công cụ> Tùy chỉnh
  • Nhấp vào tab lệnh
  • Trong hộp Danh mục, cuộn xuống Hộp công cụ Điều khiển
  • Trong hộp lệnh, cuộn xuống Nút lệnh
  • Nhấp vào nút lệnh và kéo nó lên và thả nó trên thanh công cụ hiện có
  • Loại bỏ hộp thoại Tùy chỉnh bằng cách nhấn Đóng

Bây giờ bạn đã có biểu tượng nút lệnh: Nhấp vào biểu tượng. Kéo trong trang tính của bạn để tạo nút. Làm cho nó lớn hoặc nhỏ như bạn muốn. Excel sẽ yêu cầu bạn gán macro cho nút. Chọn SendIt. Nhấp và kéo để đánh dấu từ Nút 1 trên nút. Nhập nội dung như "E-Mail this File". Nhấp vào bên ngoài nút, và bạn đã sẵn sàng. Nếu bạn cần gán lại macro được đính kèm với nút đó, hãy nhấp chuột phải vào nút và chọn gán macro.

Điều gì sẽ xảy ra nếu bạn có một danh sách lớn thông tin mà bạn muốn phân phối cho một số người dùng, nhưng bạn chỉ muốn mỗi người dùng xem thông tin của riêng họ? Dưới đây là một macro phức tạp hơn một chút sẽ thực hiện việc này. Bên phải là danh sách mẫu bán hàng ba miền.

Trước khi viết macro, hãy thiết lập sổ làm việc như sau:

  • Sao chép bảng dữ liệu bằng cách nhấp chuột phải vào tab dữ liệu, chọn "di chuyển hoặc sao chép", chọn "tạo bản sao", OK. Đổi tên trang tính mới này thành "Báo cáo". Bạn có thể đổi tên trang tính bằng cách nhấp chuột phải vào tab, chọn "đổi tên", sau đó nhập Báo cáo.
  • Trên tab báo cáo, hãy xóa tất cả các hàng dữ liệu. Chỉ giữ lại các tiêu đề và tiêu đề.
  • Chèn một trang tính mới với các cột sau: Vùng, Người nhận. Trên trang tính này, hãy nhập tên từng khu vực và người dùng sẽ nhận được báo cáo. Đổi tên trang tính này thành "Phân phối".

Đây là macro. Các dòng bắt đầu bằng dấu nháy đơn (') là các chú thích được thiết kế để giúp bạn theo dõi dòng chảy.

Public Sub SendItAll() ' Clear out any old data on Report Sheets("Report").Select Range("A1").CurrentRegion.ClearContents ' Sort data by region Sheets("Data").Select Range("A1").CurrentRegion.Select Selection.Sort Key1:=Range("A2"), Header:=xlYes ' Process each record on Distribution Sheets("Distribution").Select FinalRow = Range("A15000").End(xlUp).Row For i = 2 To FinalRow Sheets("Distribution").Select RegionToGet = Range("A" & i).Value Recipient = Range("B" & i).Value ' Clear out any old data on Report Sheets("Report").Select Range("A1").CurrentRegion.ClearContents ' Get records from Data Sheets("Data").Select Range("A1").CurrentRegion.Select ' Turn on AutoFilter, if it is not on If ActiveSheet.AutoFilterMode = False Then Selection.AutoFilter ' Filter the data to just this region Selection.AutoFilter Field:=1, Criteria1:=RegionToGet ' Select only the visible cells and copy to Report Selection.SpecialCells(xlCellTypeVisible).Select Selection.Copy Destination:=Sheets("Report").Range("A1") ' Turn off the Autofilter Selection.AutoFilter ' Copy the Report sheet to a new book and e-mail Sheets("Report").Copy Application.Dialogs(xlDialogSendMail).Show _ arg1:=Recipient, _ arg2:="Report for " & RegionToGet ActiveWorkbook.Close SaveChanges:=False Next i End Sub

thú vị bài viết...