Đức hỏi liệu có cách nào để gửi một trang tính trong sổ làm việc dưới dạng tệp đính kèm e-mail mà không cần gửi toàn bộ sổ làm việc không. Câu trả lời ngắn gọn là bạn không thể — một trang tính, bản thân nó, không thể tồn tại dưới dạng “thực thể”

mà bạn có thể đính kèm vào e-mail. Bạn chỉ có thể gửi tệp dưới dạng tệp đính kèm vào e-mail, có nghĩa là bạn phải có tệp sổ làm việc để gửi.

Tất nhiên, thật dễ dàng để tạo một sổ làm việc từ một trang tính. Nếu bạn chỉ cần thực hiện việc này một lần, thì cách dễ nhất là làm theo các bước sau:

  1. Bấm chuột phải vào tab cho trang tính bạn muốn gửi e-mail.

  2. Từ menu Ngữ cảnh kết quả, chọn Di chuyển hoặc Sao chép. Excel sẽ hiển thị hộp thoại Di chuyển hoặc Sao chép. (Xem Hình 1.)

  3. Sử dụng danh sách thả xuống Để đặt sách, chọn Sách mới.

  4. Đảm bảo rằng hộp kiểm Tạo bản sao được chọn.

  5. Bấm OK.

Tại thời điểm này, bạn sẽ thấy một sổ làm việc mới với một trang tính trong đó — một bản sao của trang tính bạn muốn gửi. Gửi email cho sổ làm việc này và bạn đã hoàn thành những gì bạn muốn. Sau khi nó được gửi qua e-mail, bạn có thể xóa sổ làm việc, vì trang tính của bạn cũng vẫn nằm trong sổ làm việc gốc.

Nếu bạn cần thường xuyên gửi trang tính hiện tại qua e-mail cho người khác, bạn có thể muốn tạo một macro sẽ thực hiện nhiệm vụ cho bạn. Macro bạn tạo sẽ khác nhau, tùy thuộc vào chương trình e-mail bạn đang sử dụng. Vì lý do này, không thể cung cấp câu trả lời toàn diện dựa trên vĩ mô trong mẹo này. Tuy nhiên, có thể mang tính hướng dẫn để cung cấp một ví dụ về macro có thể gửi e-mail một trang tính bằng cách sử dụng Outlook làm chương trình thư.

Sub EmailWithOutlook()

Dim oApp As Object     Dim oMail As Object     Dim WB As Workbook     Dim FileName As String     Dim wSht As Worksheet     Dim shtName As String

Application.ScreenUpdating = False

' Make a copy of the active worksheet     ' and save it to a temporary file     ActiveSheet.Copy     Set WB = ActiveWorkbook

FileName = WB.Worksheets(1).Name     On Error Resume Next     Kill "C:\" & FileName     On Error GoTo 0     WB.SaveAs FileName:="C:\" & FileName

'Create and show the Outlook mail item     Set oApp = CreateObject("Outlook.Application")

Set oMail = oApp.CreateItem(0)

With oMail         'Uncomment the line below to hard code a recipient         '.To = "[email protected]"

'Uncomment the line below to hard code a subject         '.Subject = "Subject Line"

'Uncomment the lines below to hard code a body         '.body = "Dear John" & vbCrLf & vbCrLf & _           '"Here is the file you asked for"

.Attachments.Add WB.FullName         .Display     End With

'Delete the temporary file     WB.ChangeFileAccess Mode:=xlReadOnly     Kill WB.FullName     WB.Close SaveChanges:=False

'Restore screen updating and release Outlook     Application.ScreenUpdating = True     Set oMail = Nothing     Set oApp = Nothing End Sub

Lưu ý rằng macro thực hiện hiệu quả những gì đã được thực hiện trong các bước trước đó:

nó sao chép trang tính sang một sổ làm việc mới và sau đó gửi e-mail cho sổ làm việc đó. Sau đó, nó sẽ xóa sổ làm việc và đưa bạn trở lại trạng thái sử dụng Excel bình thường.

Nếu bạn đang tìm kiếm một cuộc thảo luận chuyên sâu hơn về cách gửi e-mail một trang tính bằng các chương trình khác nhau, thì bạn chắc chắn sẽ muốn truy cập trang Web sau:

http://www.rondebruin.nl/win/section1.htm

_Lưu ý: _

Nếu bạn muốn biết cách sử dụng các macro được mô tả trên trang này (hoặc trên bất kỳ trang nào khác trên trang ExcelTips), tôi đã chuẩn bị một trang đặc biệt bao gồm thông tin hữu ích.

ExcelTips là nguồn của bạn để đào tạo Microsoft Excel hiệu quả về chi phí.

Mẹo này (3273) áp dụng cho Microsoft Excel 97, 2000, 2002 và 2003. Bạn có thể tìm thấy phiên bản của mẹo này cho giao diện ribbon của Excel (Excel 2007 trở lên) tại đây: