Excel 教學 – 從 Excel 發送電子郵件
一般來說,我們會使用如 Outlook、Gmail 等郵件客戶端來發送郵件。但許多人會將資料儲存在 Excel 工作簿中,並在處理時需要將部分資料發送給他人。因此,他們需要直接從 Excel 工作簿發送郵件,這樣可以節省操作郵件客戶端的時間。本教學將以步驟說明如何根據不同情境從 Excel 發送電子郵件。
注意:在使用下列方法前,請先在電腦上設定 Outlook 郵件客戶端,並將其設為預設郵件客戶端。
目錄:[ 隱藏 ]
1. 從 Excel 發送電子郵件的基本操作
本節將介紹從 Excel 發送電子郵件的基本方法。
1.1 使用 Excel內建函數從 Excel 發送電子郵件
如果您只需從 Excel 發送簡單的郵件,僅包含收件人、主旨、抄送和內容等欄位,Excel內建函數即可協助您完成。
如下表所示,若需根據不同欄位從 Excel 發送不同郵件,您可以利用這些欄位的儲存格參照來建立不同的 Hyperlink公式。建立好郵件超連結後,只需點擊所需的超連結,即可自動發送郵件。
注意:若收件人或抄送欄位有多個地址,請以分號分隔。
本節分為四個部分,分別說明如何將電子郵件地址、抄送收件人、主旨及內容分別加入 Hyperlink公式。請依下列步驟操作。
「HYPERLINK」函數的語法與參數如下。
語法
HYPERLINK(link_location, [friendly_name])
參數說明
1.1.1.1 在 Hyperlink公式中添加電子郵件地址
這裡我們在公式中使用「mailto:」來添加收件人。例如,第一位收件人的電子郵件地址在 B2 儲存格,因此需將「mailto:」與 B2參照結合。
“mailto:”&B2
1. 選擇要顯示超連結的儲存格,本例選擇 F2。
2. 然後在該儲存格輸入下列公式。
=HYPERLINK("mailto:"&B2)
注意:按下「Enter」鍵後,會建立一個超連結,如下圖所示。點擊該連結時,會自動建立一封 Outlook 郵件,並將收件人地址自動填入 To 欄位。
目前已將收件人電子郵件地址加入 Hyperlink公式。請繼續下列步驟,根據需要添加主旨、抄送收件人及內容。
1.1.1.2 在 Hyperlink公式中添加抄送(Cc)收件人
若要在 Hyperlink 函數中添加抄送收件人,請在公式中加入「?cc=」,如下所示。
F2 儲存格中的公式應如下所示:
=HYPERLINK("mailto:" & B2 & "?cc=" & C2)
若要在 Hyperlink 函數中添加主旨,請在公式中加入「&subject=」,如下所示。
F2 儲存格中的公式現在應如下所示:
=HYPERLINK("mailto:" & B2 & "?cc=" & C2 & "&subject="& D2)
1.1.1.4 在 Hyperlink公式中添加帶換行的郵件內容
最後一步是將郵件內容加入 Hyperlink公式。如範例所示,E2內有兩行文字以換行分隔,您希望郵件內容中保留換行。Outlook 是否能識別這種換行?我們來檢查一下。
若要將內容加入 Hyperlink公式,請在公式中加入「&body=」,如下所示。
F2 儲存格中的公式現在顯示如下:
=HYPERLINK("mailto:" & B2 & "?cc=" & C2 & "&subject="& D2 & "&body="& E2)
注意:按下「Enter」鍵並點擊連結後,您會發現新郵件中的內容會顯示在同一行。
若要讓郵件內容分行顯示,請在需要換行的地方於儲存格內容中加入換行字元碼「%0A」。請參考下圖:
在上述步驟中,我們已完成 Link_location參數的郵件欄位設定。本節將說明如何設定下一個參數 [friendly_name]。
本例中,我希望超連結儲存格顯示「Email to xx」的文字,其中 xx 為 A2 儲存格的收件人姓名。因此,F2 的公式應修改為:
=HYPERLINK("mailto:" & B2 & "?cc=" & C2 & "&subject="& D2 & "&body="& E2, "Email to "&A2)
按下「Enter」鍵即可取得結果。
選取此公式儲存格,然後拖曳「自動填滿控點」以建立其他郵件超連結。請參考下圖:
1.1.2 使用 Hyperlink 函數從 Excel 發送電子郵件
除了使用上述 Hyperlink公式外,您也可以手動透過 Excel 的「插入超連結」功能建立郵件超連結。本節將說明具體步驟。
1.於欲插入超連結的電子郵件儲存格上按右鍵,從右鍵選單選擇「連結」。
2. 在彈出的「插入超連結」對話框中,請依下列方式設定。

當您點擊超連結時,會自動建立一封 Outlook 郵件,並將 To、主旨及內容等欄位填入,如下圖所示。
注意事項:
1.2 使用 VBA 腳本向儲存格中的多位收件人發送郵件
如上例所示,若儲存格中有多個電子郵件地址並以分號分隔,且您有一份如圖所示的郵件地址清單,想要群發或分別發送郵件給所有人,以下 VBA 程式碼可協助您完成。
1.2.1 使用 VBA 腳本向儲存格中的多位收件人發送郵件
1. 在包含所有收件人電子郵件地址的工作表中,按下「Alt」+「F11」鍵開啟「Microsoft Visual Basic for Applications」視窗。
2. 在「Microsoft Visual Basic for Applications」視窗中,點擊「插入」>「模組」,然後將下列程式碼貼到「模組(程式碼)」視窗中。
VBA 程式碼:將郵件發送給郵件地址清單
Sub sendmultiple()
'updateby Extendoffice 20220802
Dim xOTApp As Object
Dim xMItem As Object
Dim xCell As Range
Dim xRg As Range
Dim xEmailAddr As String
Dim xTxt As String
On Error Resume Next
xTxt = ActiveWindow.RangeSelection.Address
Set xRg = Application.InputBox("Please select the addresses list:", "Kutools for Excel", xTxt, , , , , 8)
If xRg Is Nothing Then Exit Sub
Set xOTApp = CreateObject("Outlook.Application")
For Each xCell In xRg
If xCell.Value Like "*@*" Then
If xEmailAddr = "" Then
xEmailAddr = xCell.Value
Else
xEmailAddr = xEmailAddr & ";" & xCell.Value
End If
End If
Next
Set xMItem = xOTApp.CreateItem(0)
With xMItem
.To = xEmailAddr
.Subject = "Test"
.Body = "Dear " _
& vbNewLine & vbNewLine & _
"This is a test email " & _
"sending in Excel"
.Display
End With
End Sub
3. 按下「F5」鍵執行程式碼,會跳出「Kutools for Excel」對話框。選取郵件地址清單並點擊「確定」。
注意事項:
.Body = "Dear " _
& vbNewLine & vbNewLine & _
"This is a test email " & _
"sending in Excel"
執行程式碼後,所選區域內的所有電子郵件地址都會顯示在郵件視窗的 To 欄位中。請參考下圖:
1.2.2 使用 VBA 腳本分別向儲存格中的每位收件人發送郵件
上述程式碼會將所選區域內所有電子郵件地址加入郵件視窗的 To 欄位。如果您希望分別發送郵件給每位收件人,且不讓彼此看到對方的郵件地址,可嘗試以下 VBA 程式碼。
1. 在包含所有收件人電子郵件地址的工作表中,按下「Alt」+「F11」鍵開啟「Microsoft Visual Basic for Applications」視窗。
2. 在「Microsoft Visual Basic for Applications」視窗中,點擊「插入」>「模組」,然後將下列程式碼貼到模組(程式碼)視窗中。
VBA 程式碼:分別將郵件發送給儲存格中的每個郵件地址
Sub SendEmailToAddressInCells()
'Updated by Extendoffice 20220802
Dim xRg As Range
Dim xRgEach As Range
Dim xRgVal As String
Dim xAddress As String
Dim xOutApp As Outlook.Application
Dim xMailOut As Outlook.MailItem
On Error Resume Next
xAddress = ActiveWindow.RangeSelection.Address
Set xRg = Application.InputBox("Please select the addresses list", "KuTools For Excel", xAddress, , , , , 8)
If xRg Is Nothing Then Exit Sub
Application.ScreenUpdating = False
Set xOutApp = CreateObject("Outlook.Application")
Set xRg = xRg.SpecialCells(xlCellTypeConstants, xlTextValues)
For Each xRgEach In xRg
xRgVal = xRgEach.Value
If xRgVal Like "?*@?*.?*" Then
Set xMailOut = xOutApp.CreateItem(olMailItem)
With xMailOut
.To = xRgVal
.Subject = "Test"
.Body = "Dear " _
& vbNewLine & vbNewLine & _
"This is a test email " & _
"sending in Excel"
.Display
'.Send
End With
End If
Next
Set xMailOut = Nothing
Set xOutApp = Nothing
Application.ScreenUpdating = True
End Sub
3. 然後點擊「工具」>「參照」。在「參照 – VBAProject」對話框中,找到並勾選「Microsoft Outlook16.0 Object Library」,再點擊「確定」儲存變更。
4. 按下「F5」鍵執行程式碼,會跳出「Kutools for Excel」對話框。選取郵件地址清單並點擊「確定」。
注意事項:
.Subject = "Test"
.Body = "Dear " _
& vbNewLine & vbNewLine & _
"This is a test email " & _
"sending in Excel"
本例中,所選區域有六個電子郵件地址,因此會自動建立六個 Outlook 郵件視窗,每個 To 欄位分別填入對應的郵件地址,如下圖所示。
5. 最後,點擊「發送」按鈕,逐一發送郵件。
2. 在從 Excel 發送的郵件中插入附件或 Outlook 簽名(含 VBA 腳本)
本節將說明如何在從 Excel 發送的郵件中插入附件或 Outlook 預設簽名。
2.1 在從 Excel 發送的郵件中插入附件
本節將介紹不同情境下插入附件的方法,您可根據需求選擇合適方式。請點擊下方任一連結跳轉至對應方法:
您可以使用下列 VBA 程式碼,將資料夾中的一個或多個文件作為附件從 Excel 發送郵件。
1. 按下「Alt」+「F11」鍵。
2. 在開啟的「Microsoft Visual Basic for Applications」視窗中,點擊「插入」>「模組」,然後將下列 VBA 程式碼貼到模組(程式碼)視窗中。
VBA 程式碼:將資料夾中的文件作為附件從 Excel 發送郵件
Sub EmailWithAttachments()
'Updated by Extendoffice 20220802
Dim xStrFile As String
Dim xFilePath As String
Dim xFileDlg As FileDialog
Dim xFileDlgItem As Variant
Dim xOutApp As Outlook.Application
Dim xMailOut As Outlook.MailItem
Application.ScreenUpdating = False
Set xOutApp = CreateObject("Outlook.Application")
Set xMailOut = xOutApp.CreateItem(olMailItem)
Set xFileDlg = Application.FileDialog(msoFileDialogFilePicker)
If xFileDlg.Show = -1 Then
With xMailOut
.BodyFormat = olFormatRichText
.To = "xxx@aaa.com"
.Subject = "test"
.HTMLBody = "test"
For Each xFileDlgItem In xFileDlg.SelectedItems
.Attachments.Add xFileDlgItem
Next xFileDlgItem
.Display
End With
End If
Set xMailOut = Nothing
Set xOutApp = Nothing
Application.ScreenUpdating = True
End Sub
注意事項:
3. 然後點擊「工具」>「參照」。在「參照 – VBAProject」對話框中,找到並勾選「Microsoft Outlook16.0 Object Library」,再點擊「確定」儲存變更。
4. 按下「F5」鍵執行程式碼,會跳出「瀏覽」視窗,請選取需附加於郵件的文件,然後點擊「確定」。
接著會彈出郵件視窗,您可看到所選文件已顯示於附件欄位。
若需將當前工作表作為附件從 Excel 發送郵件,可使用本節的 VBA 程式碼。
1. 按下「Alt」+「F11」鍵。
2. 在開啟的「Microsoft Visual Basic for Applications」視窗中,點擊「插入」>「模組」,然後將下列 VBA 程式碼貼到「模組(程式碼)」視窗中。
VBA 程式碼:將當前工作表作為附件發送郵件
Sub SendWorkSheet()
'Update by Extendoffice 20220802
Dim xFile As String
Dim xFormat As Long
Dim Wb As Workbook
Dim Wb2 As Workbook
Dim FilePath As String
Dim FileName As String
Dim OutlookApp As Object
Dim OutlookMail As Object
On Error Resume Next
Application.ScreenUpdating = False
Set Wb = Application.ActiveWorkbook
ActiveSheet.Copy
Set Wb2 = Application.ActiveWorkbook
Select Case Wb.FileFormat
Case xlOpenXMLWorkbook:
xFile = ".xlsx"
xFormat = xlOpenXMLWorkbook
Case xlOpenXMLWorkbookMacroEnabled:
If Wb2.HasVBProject Then
xFile = ".xlsm"
xFormat = xlOpenXMLWorkbookMacroEnabled
Else
xFile = ".xlsx"
xFormat = xlOpenXMLWorkbook
End If
Case Excel8:
xFile = ".xls"
xFormat = Excel8
Case xlExcel12:
xFile = ".xlsb"
xFormat = xlExcel12
End Select
FilePath = Environ$("temp") & "\"
FileName = Wb.Name & Format(Now, "dd-mmm-yy h-mm-ss")
Set OutlookApp = CreateObject("Outlook.Application")
Set OutlookMail = OutlookApp.CreateItem(0)
Wb2.SaveAs FilePath & FileName & xFile, FileFormat:=xFormat
With OutlookMail
.To = "xxx@aaa.com"
.CC = "Email Address"
.BCC = "Email Address"
.Subject = "kte features"
.Body = "Please check and read this document."
.Attachments.Add Wb2.FullName
.Display
'.Send
End With
Wb2.Close
Kill FilePath & FileName & xFile
Set OutlookMail = Nothing
Set OutlookApp = Nothing
Application.ScreenUpdating = True
End Sub
注意事項:
3. 按下「F5」鍵執行程式碼,則當前工作表會另存為 Excel 工作簿並自動作為附件插入郵件視窗。請參考下圖:
注意:僅包含當前工作表的附件,其檔名與原始工作簿相同,並會加上執行程式碼的時間。
學會將當前工作表作為附件發送郵件後,這裡提供另一段 VBA 程式碼,協助您將整個工作簿作為附件發送。請依下列步驟操作。
1. 按下「Alt」+「F11」鍵。
2. 在開啟的「Microsoft Visual Basic for Applications」視窗中,點擊「插入」>「模組」,然後將下列 VBA 程式碼貼到模組(程式碼)視窗中。
VBA 程式碼:將當前工作簿作為附件從 Excel 發送郵件
Sub SendWorkBook()
'Update by Extendoffice 20220802
Dim OutlookApp As Object
Dim OutlookMail As Object
Set OutlookApp = CreateObject("Outlook.Application")
Set OutlookMail = OutlookApp.CreateItem(0)
On Error Resume Next
With OutlookMail
.To = "xxx@aaa.com"
.CC = "Email Address"
.BCC = "Email Address"
.Subject = "kte feature"
.Body = "Hello, please check and read this document, thank you."
.Attachments.Add Application.ActiveWorkbook.FullName
.Display
'.Send
End With
Set OutlookMail = Nothing
Set OutlookApp = Nothing
End Sub
注意事項:
3. 按下「F5」鍵執行程式碼,則當前工作簿會自動作為附件插入郵件視窗。請參考下圖:
多數人會將 Excel 工作簿另存為 PDF 檔後再作為附件發送給他人。本節將說明如何直接從 Excel 發送郵件,並將當前開啟的工作簿以 PDF 附件形式發送,無需手動另存為 PDF。
1. 按下「Alt」+「F11」鍵。
2. 在開啟的「Microsoft Visual Basic for Applications」視窗中,點擊「插入」>「模組」,然後將下列 VBA 程式碼貼到模組(程式碼)視窗中。
VBA 程式碼:將整個工作簿以 PDF 附件發送郵件
Sub SendWorkBookAsPDF()
'Update 20220803
Dim Wb As Workbook
Dim FilePath As String
Dim FileName As String
Dim xOutApp As Object
Dim xOutMail As Object
On Error Resume Next
Application.ScreenUpdating = False
Set Wb = Application.ActiveWorkbook
FileName = Left(Wb.Name, (InStrRev(Wb.Name, ".", -1, vbTextCompare) - 1)) & Format(Now, "dd-mmm-yy h-mm-ss") & ".pdf"
FilePath = Environ$("temp") & "\" & FileName
Wb.ExportAsFixedFormat Type:=xlTypePDF, FileName:= _
FilePath, Quality:=xlQualityStandard, _
IncludeDocProperties:=True, IgnorePrintAreas:=False, OpenAfterPublish:= _
False
Set xOutApp = CreateObject("Outlook.Application")
Set xOutMail = xOutApp.CreateItem(0)
With xOutMail
.To = "xxx@aaa.com"
.CC = "Email Address"
.BCC = "Email Address"
.Subject = "test"
.Body = "test"
.Attachments.Add FilePath
.Display 'or use .Send
End With
Kill FilePath
Set xOutMail = Nothing
Set xOutApp = Nothing
Application.ScreenUpdating = True
End Sub
注意事項:
3. 按下「F5」鍵執行程式碼,則當前工作簿會自動以 PDF 附件形式插入新郵件視窗。請參考下圖:
例如,有一份名為「Monthly sales」的工作簿,您已在名為「sales report」的工作表中完成銷售報表,並希望將此工作表以 PDF 檔發送給同事。以下 VBA 程式碼可協助您完成。
1. 按下「Alt」+「F11」鍵。
2. 在開啟的「Microsoft Visual Basic for Applications」視窗中,點擊「插入」>「模組」,然後將下列 VBA 程式碼貼到模組(程式碼)視窗中。
VBA 程式碼:將當前工作表以 PDF 附件發送郵件
Sub SendWorkSheetToPDF()
'Update by Extendoffice 20220803
Dim Wb As Workbook
Dim FileName As String
Dim OutlookApp As Object
Dim OutlookMail As Object
On Error Resume Next
Set Wb = Application.ActiveWorkbook
FileName = Wb.FullName
xIndex = VBA.InStrRev(FileName, ".")
If xIndex > 1 Then FileName = VBA.Left(FileName, xIndex - 1)
FileName = FileName & "_" + ActiveSheet.Name & ".pdf"
ActiveSheet.ExportAsFixedFormat Type:=xlTypePDF, FileName:=FileName
Set OutlookApp = CreateObject("Outlook.Application")
Set OutlookMail = OutlookApp.CreateItem(0)
With OutlookMail
.To = "xxx@aaa.com"
.CC = "Email Address"
.BCC = "Email Address"
.Subject = "test"
.Body = "test"
.Attachments.Add FileName
.Display
'.Send
End With
Kill FileName
Set OutlookMail = Nothing
Set OutlookApp = Nothing
End Sub
注意事項:
3. 按下「F5」鍵執行程式碼,則當前工作表會自動以 PDF 附件形式插入新郵件視窗。請參考下圖:
2.2 在從 Excel 發送的郵件中插入 Outlook 簽名
以上述案例為例,您已使用 VBA 程式碼將當前工作表以 PDF 附件形式從 Excel 發送,但 Outlook 簽名無法自動加入郵件視窗。若要保留 Outlook 預設簽名於從 Excel 發送的郵件中,可參考以下方法。
以下列出兩段 VBA 程式碼。
VBA 程式碼1:保留 Outlook 簽名的程式碼。
VBA 程式碼2:將當前工作表以 PDF 附件發送郵件的程式碼。
VBA 程式碼1:保留 Outlook 簽名
.HTMLBody = "Email body" & "
" & .HTMLBody
VBA 程式碼2:將當前工作表以 PDF 附件發送郵件
Sub SendWorkSheetToPDF()
'Update by Extendoffice 20220803
Dim Wb As Workbook
Dim FileName As String
Dim OutlookApp As Object
Dim OutlookMail As Object
On Error Resume Next
Set Wb = Application.ActiveWorkbook
FileName = Wb.FullName
xIndex = VBA.InStrRev(FileName, ".")
If xIndex > 1 Then FileName = VBA.Left(FileName, xIndex - 1)
FileName = FileName & "_" + ActiveSheet.Name & ".pdf"
ActiveSheet.ExportAsFixedFormat Type:=xlTypePDF, FileName:=FileName
Set OutlookApp = CreateObject("Outlook.Application")
Set OutlookMail = OutlookApp.CreateItem(0)
With OutlookMail
.To = "xxx@aaa.com"
.CC = "Email Address"
.BCC = "Email Address"
.Subject = "test"
.Body = "test"
.Attachments.Add FileName
.Display
'.Send
End With
Kill FileName
Set OutlookMail = Nothing
Set OutlookApp = Nothing
End Sub
1. 一般情況下,請按下「Alt」+「F11」鍵開啟「Microsoft Visual Basic for Applications」視窗。
2. 在「Microsoft Visual Basic for Applications」視窗中,點擊「插入」>「模組」,然後將上述 VBA 程式碼2 貼到模組(程式碼)視窗中。
3. 若要保留 Outlook 預設簽名於從 Excel 發送的郵件中,請依下列方式修改 VBA 程式碼2:
以下為修改後的完整程式碼。
Sub SendWorkSheetToPDF()
'Update by Extendoffice 20220803
Dim Wb As Workbook
Dim FileName As String
Dim OutlookApp As Object
Dim OutlookMail As Object
On Error Resume Next
Set Wb = Application.ActiveWorkbook
FileName = Wb.FullName
xIndex = VBA.InStrRev(FileName, ".")
If xIndex > 1 Then FileName = VBA.Left(FileName, xIndex - 1)
FileName = FileName & "_" + ActiveSheet.Name & ".pdf"
ActiveSheet.ExportAsFixedFormat Type:=xlTypePDF, FileName:=FileName
Set OutlookApp = CreateObject("Outlook.Application")
Set OutlookMail = OutlookApp.CreateItem(0)
With OutlookMail
.Display
.To = "xxx@aaa.com"
.CC = "Email Address"
.BCC = "Email Address"
.Subject = "test"
.HTMLBody = "Email body" & "
" & .HTMLBody
.Attachments.Add FileName
'.Send
End With
Kill FileName
Set OutlookMail = Nothing
Set OutlookApp = Nothing
End Sub
4. 按下「F5」鍵執行程式碼,即可自動建立新郵件視窗,將當前工作表以 PDF 附件形式插入,並自動在郵件內容結尾插入 Outlook 預設簽名。
3. 當條件達成時自動從 Excel 發送郵件(含 VBA 腳本)
在上述範例中,您需手動執行程式碼才能發送郵件。若希望在達成特定條件時自動觸發程式碼(如儲存格達到某值、儲存格值變更、日期到達等),即可自動發送郵件。本節彙整 Excel 用戶常在 Google 搜尋的條件,協助您自動從 Excel 發送郵件。
3.1 當儲存格達到特定值時自動發送郵件
如下圖所示,假設您有一份銷售表,D6 儲存格為銷售總額。您希望當銷售總額超過10000 時自動發送郵件給主管,若等於或小於10000 則不執行任何操作。
1. 在包含銷售表的工作表上,右鍵點擊工作表標籤,選擇「檢視程式碼」。
2. 在開啟的「Microsoft Visual Basic for Applications」視窗中,將下列 VBA 程式碼貼到「工作表(程式碼)」視窗中。
VBA 程式碼:當儲存格達到特定值時自動從 Excel 發送郵件
Dim xRg As Range
'Update by Extendoffice 20200803
Private Sub Worksheet_Change(ByVal Target As Range)
On Error Resume Next
If Target.Cells.Count > 1 Then Exit Sub
Set xRg = Intersect(Range("D6"), Target)
If xRg Is Nothing Then Exit Sub
If IsNumeric(Target.Value) And Target.Value > 10000 Then
Call Mail_small_Text_Outlook
End If
End Sub
Sub Mail_small_Text_Outlook()
Dim xOutApp As Object
Dim xOutMail As Object
Dim xMailBody As String
Set xOutApp = CreateObject("Outlook.Application")
Set xOutMail = xOutApp.CreateItem(0)
xMailBody = "Hi boss" & vbNewLine & vbNewLine & _
"Total sales of over $10,000 in January: " & Range("D6")
On Error Resume Next
With xOutMail
.To = "xxx@aaa.com"
.CC = "Email address"
.BCC = "Email address"
.Subject = "test"
.Body = xMailBody
.Display 'or use .Send
End With
On Error GoTo 0
Set xOutMail = Nothing
Set xOutApp = Nothing
End Sub
Private Sub Worksheet_Calculate()
Dim xI As Integer
Dim xRg As Range
Set xRg = Range("D6")
On Error GoTo Err01
xI = Int(xRg.Value)
If xI > 10000 Then
Call Mail_small_Text_Outlook
End If
Err01:
End Sub
注意事項:
xMailBody = "Hi boss" & vbNewLine & vbNewLine & _
"Total sales of over $10,000 in January: " & Range("D6")
從現在起,當 D6 儲存格的值超過10000 時,會自動建立一封郵件,如下圖所示。
3.2 當儲存格值變更時自動發送郵件
如下圖所示,假設您收到一份包含不同工作表的每月銷售數據及總銷售額的工作簿。您需驗證總銷售額,若其值被修改,則將工作簿發回給發件人並通知其儲存格已被更改。
1. 在包含銷售表的工作表上,右鍵點擊工作表標籤,選擇「檢視程式碼」。
2. 在開啟的「Microsoft Visual Basic for Applications」視窗中,將下列 VBA 程式碼貼到工作表(程式碼)視窗中。
VBA 程式碼:當指定儲存格值變更時自動從 Excel 發送郵件
Private Sub Worksheet_Change(ByVal Target As Range)
'Updated by Extendoffice 20220803
Dim xRgSel As Range
Dim xOutApp As Object
Dim xMailItem As Object
Dim xMailBody As String
Dim xBoolean As Boolean
Dim xItsRG As Range
Dim xDDs As Range
Dim xDs As Range
On Error Resume Next
Application.ScreenUpdating = False
Application.DisplayAlerts = False
xBoolean = False
Set xRg = Range("B14")
Set xItsRG = Intersect(Target, xRg)
Set xDDs = Intersect(Target.DirectDependents, xRg)
Set xDs = Intersect(Target.Dependents, xRg)
If Not (xItsRG Is Nothing) Then
Set xRgSel = xItsRG
xBoolean = True
ElseIf Not (xDDs Is Nothing) Then
Set xRgSel = xDDs
xBoolean = True
ElseIf Not (xDs Is Nothing) Then
Set xRgSel = xDs
xBoolean = True
End If
ActiveWorkbook.Save
If xBoolean Then
Debug.Print xRgSel.Address
Set xOutApp = CreateObject("Outlook.Application")
Set xMailItem = xOutApp.CreateItem(0)
xMailBody = "The cell " & xRgSel.Address(False, False) & _
" in the worksheet '" & Me.Name & "' were modified on " & _
Format$(Now, "mm/dd/yyyy") & " at " & Format$(Now, "hh:mm:ss") & _
" by " & Environ$("username") & "."
With xMailItem
.To = "xxx@aaa.com"
.CC = "Email address"
.BCC = "Email address"
.Subject = "Worksheet modified"
.Body = xMailBody
.Attachments.Add (ThisWorkbook.FullName)
.Display
End With
Set xRgSel = Nothing
Set xOutApp = Nothing
Set xMailItem = Nothing
End If
Application.DisplayAlerts = True
Application.ScreenUpdating = True
End Sub
注意事項:
從現在起,當 B14 儲存格的值變更時,會自動建立 Outlook 郵件,如下圖所示。
3.3 當儲存工作簿時自動發送郵件
若您有一份需與他人共用的工作簿,通常需先儲存工作簿,再開啟郵件客戶端,建立新郵件並附加該工作簿,填寫相關欄位後發送。本節將說明如何在每次儲存工作簿時自動建立郵件。請依下列步驟操作。
1. 按下「Alt」+「F11」鍵開啟「Microsoft Visual Basic for Applications」視窗。
2. 在此視窗中,於「專案」窗格雙擊「ThisWorkbook」,然後將下列 VBA 程式碼貼到「ThisWorkbook(程式碼)」視窗中。
VBA 程式碼:當儲存工作簿時自動從 Excel 發送郵件
Private Sub Workbook_AfterSave(ByVal Success As Boolean)
'Updated by Extendoffice 20220804
Dim xOutApp As Object
Dim xMailItem As Object
Dim xName As String
On Error Resume Next
Set xOutApp = CreateObject("Outlook.Application")
Set xMailItem = xOutApp.CreateItem(0)
xName = ActiveWorkbook.FullName
With xMailItem
.To = "xxx@aaa.com"
.CC = "Email address"
.BCC = "Email address"
.Subject = "The workbook has been updated"
.Body = "Hi," & Chr(13) & Chr(13) & "File is now updated."
.Attachments.Add xName
.Display
'.send
End With
Set xMailItem = Nothing
Set xOutApp = Nothing
End Sub
注意事項:
從現在起,每當按下「Ctrl」+「S」或點擊「儲存」按鈕儲存工作簿時,會自動建立 Outlook 郵件。您可看到當前工作簿已作為附件附加,且欄位已填入指定內容。請參考下圖:
提示:若經常使用此工作簿,建議將其另存為「Excel 巨集啟用工作簿」,以便日後保留 VBA 程式碼。步驟如下。
3.4 在特定時間自動發送郵件
假設您需要每週五上午9 點自動將任務分配工作簿發送給某人,且希望在 Excel 中自動完成,無需手動操作郵件客戶端。本節將說明如何實現。
1. 按下「Alt」+「F11」鍵開啟「Microsoft Visual Basic for Applications」視窗。
2. 在「Microsoft Visual Basic for Applications」視窗中,點擊「插入」>「模組」,然後將下列 VBA 程式碼貼到模組視窗中。
VBA 程式碼1:將當前工作簿作為附件從 Excel 發送郵件
Sub Timer()
If Weekday(Date) = vbFriday Then
SendWorkBook
Application.OnTime TimeValue("09:00:00"), "Timer"
Else
Application.OnTime TimeValue("09:00:00"), "Timer"
End If
End Sub
Sub SendWorkBook()
'Update by Extendoffice 20220802
Dim OutlookApp As Object
Dim OutlookMail As Object
Set OutlookApp = CreateObject("Outlook.Application")
Set OutlookMail = OutlookApp.CreateItem(0)
On Error Resume Next
With OutlookMail
.To = "xxx@aaa.com"
.CC = "Email Address"
.BCC = "Email Address"
.Subject = "kte feature"
.Body = "Hello, please check and read this document, thank you."
.Attachments.Add Application.ActiveWorkbook.FullName
.Display
'.Send
End With
Set OutlookMail = Nothing
Set OutlookApp = Nothing
End Sub
3. 在此視窗中,於「專案」窗格雙擊「ThisWorkbook」,然後將下列 VBA 程式碼貼到「ThisWorkbook(程式碼)」視窗中。
VBA 程式碼2:在特定時間自動發送郵件
Private Sub Workbook_Open()
Application.OnTime TimeValue("09:00:00"), "Timer"
End Sub
注意事項:
4. 儲存程式碼後,將工作簿另存為 Excel 巨集啟用工作簿,方法如下。
5. 開啟已儲存的巨集啟用工作簿,當到達指定日期與時間時,會自動建立或發送郵件。
4.其他主題
本節彙整您在從 Excel 發送郵件時可能遇到的其他主題。
4.1 使用 VBA 腳本從 Excel 發送一個區域的儲存格內容
假設在 Excel 工作表中有一份每月銷售表,如下圖所示,您需將此表格作為郵件內容或附件發送給他人。這裡提供兩種方法協助您完成。
您可執行下列 VBA 程式碼,將一個區域的儲存格作為郵件內容從 Excel 發送。
1. 按下「Alt」+「F11」鍵開啟「Microsoft Visual Basic for Applications」視窗。
2. 在「Microsoft Visual Basic for Applications」視窗中,點擊「工具」>「參照」,勾選「Microsoft Outlook16.0 Object Library」,於「參照 – VBAProject」對話框中點擊「確定」。
3. 點擊「插入」>「模組」,然後將下列 VBA 程式碼貼到「模組(程式碼)」視窗中。
VBA 程式碼:將一個區域的儲存格作為郵件內容從 Excel 發送
Sub SendARangeofCells()
'Updated by Extendoffice 20220809
Dim xRg As Range
Dim I, J As Long
Dim xAddress As String
Dim xMailOut As Object
Dim xOutApp As Object
On Error Resume Next
Set xOutApp = CreateObject("Outlook.Application")
Set xMailOut = xOutApp.CreateItem(olMailItem)
xAddress = ActiveWindow.RangeSelection.Address
Set xRg = Application.InputBox("Please select range you need to paste into email body", "KuTools For Excel", xAddress, , , , , 8)
If xRg Is Nothing Then Exit Sub
Application.ScreenUpdating = False
Set xOutApp = CreateObject("Outlook.Application")
Set xMailOut = xOutApp.CreateItem(olMailItem)
With xMailOut
.Subject = "test"
.To = "xxx@aaa.com"
.CC = "Email address"
.BCC = "Email address"
.HTMLBody = RangetoHTML(xRg)
.Display
'.Send
End With
Set xMailOut = Nothing
Set xOutApp = Nothing
Application.ScreenUpdating = True
End Sub
' The following VBA script is cited from this page:
' https://stackoverflow.com/questions/18663127/paste-excel-range-in-outlook
Function RangetoHTML(rng As Range)
' By Ron de Bruin.
Dim fso As Object
Dim ts As Object
Dim TempFile As String
Dim TempWB As Workbook
TempFile = Environ$("temp") & "/" & Format(Now, "dd-mm-yy h-mm-ss") & ".htm"
'Copy the range and create a new workbook to past the data in
rng.Copy
Set TempWB = Workbooks.Add(1)
With TempWB.Sheets(1)
.Cells(1).PasteSpecial Paste:=8
.Cells(1).PasteSpecial xlPasteValues, , False, False
.Cells(1).PasteSpecial xlPasteFormats, , False, False
.Cells(1).Select
Application.CutCopyMode = False
On Error Resume Next
.DrawingObjects.Visible = True
.DrawingObjects.Delete
On Error GoTo 0
End With
'Publish the sheet to a htm file
With TempWB.PublishObjects.Add( _
SourceType:=xlSourceRange, _
Filename:=TempFile, _
Sheet:=TempWB.Sheets(1).Name, _
Source:=TempWB.Sheets(1).UsedRange.Address, _
HtmlType:=xlHtmlStatic)
.Publish (True)
End With
'Read all data from the htm file into RangetoHTML
Set fso = CreateObject("Scripting.FileSystemObject")
Set ts = fso.GetFile(TempFile).OpenAsTextStream(1, -2)
RangetoHTML = ts.ReadAll
ts.Close
RangetoHTML = Replace(RangetoHTML, "align=center x:publishsource=", _
"align=left x:publishsource=")
'Close TempWB
TempWB.Close savechanges:=False
'Delete the htm file we used in this function
Kill TempFile
Set ts = Nothing
Set fso = Nothing
Set TempWB = Nothing
End Function
注意事項:
4. 按下「F5」鍵執行程式碼,在跳出的「Kutools for Excel」對話框中,選取需作為郵件內容的區域,然後點擊「確定」。請參考下圖:
接著會自動建立 Outlook 郵件,您可看到所選區域已插入郵件內容中。請參考下圖:
若需將工作表中的一個區域作為附件從 Excel 發送郵件,可嘗試下列 VBA 程式碼。
1. 按下「Alt」+「F11」鍵。
2. 在開啟的「Microsoft Visual Basic for Applications」視窗中,點擊「插入」>「模組」,然後將下列 VBA 程式碼貼到「模組(程式碼)」視窗中。
VBA 程式碼:將區域作為附件從 Excel 發送郵件
Sub SendRange()
'Update 20220809
Dim xFile As String
Dim xFormat As Long
Dim Wb As Workbook
Dim Wb2 As Workbook
Dim Ws As Worksheet
Dim FilePath As String
Dim FileName As String
Dim OutlookApp As Object
Dim OutlookMail As Object
Dim WorkRng As Range
xTitleId = "KutoolsforExcel"
Set WorkRng = Application.Selection
Set WorkRng = Application.InputBox("Range", xTitleId, WorkRng.Address, Type:=8)
Application.ScreenUpdating = False
Application.DisplayAlerts = False
Set Wb = Application.ActiveWorkbook
Wb.Worksheets.Add
Set Ws = Application.ActiveSheet
WorkRng.Copy Ws.Cells(1, 1)
Ws.Copy
Set Wb2 = Application.ActiveWorkbook
Select Case Wb.FileFormat
Case xlOpenXMLWorkbook:
xFile = ".xlsx"
xFormat = xlOpenXMLWorkbook
Case xlOpenXMLWorkbookMacroEnabled:
If Wb2.HasVBProject Then
xFile = ".xlsm"
xFormat = xlOpenXMLWorkbookMacroEnabled
Else
xFile = ".xlsx"
xFormat = xlOpenXMLWorkbook
End If
Case Excel8:
xFile = ".xls"
xFormat = Excel8
Case xlExcel12:
xFile = ".xlsb"
xFormat = xlExcel12
End Select
FilePath = Environ$("temp") & "\"
FileName = Wb.Name & Format(Now, "dd-mmm-yy h-mm-ss")
Set OutlookApp = CreateObject("Outlook.Application")
Set OutlookMail = OutlookApp.CreateItem(0)
Wb2.SaveAs FilePath & FileName & xFile, FileFormat:=xFormat
With OutlookMail
.To = "xxx@aaa.com"
.CC = "Email address"
.BCC = "Email address"
.Subject = "Monthly sales for 2021"
.Body = "Hello, please check and read this document. "
.Attachments.Add Wb2.FullName
.Display
'.Send
End With
Wb2.Close
Kill FilePath & FileName & xFile
Set OutlookMail = Nothing
Set OutlookApp = Nothing
Ws.Delete
Application.DisplayAlerts = True
Application.ScreenUpdating = True
End Sub
注意事項:
3. 按下「F5」鍵執行程式碼,在跳出的「Kutools for Excel」對話框中,選取需作為附件的區域,然後點擊「確定」。請參考下圖:
接著會自動建立 Outlook 郵件,您可看到所選區域已另存為 Excel 工作簿並附加於郵件視窗。請參考下圖:
4.2 在 Excel 中點擊按鈕時發送郵件
若需點擊指令按鈕以觸發巨集從 Excel 發送郵件,例如點擊工作表中的指令按鈕將當前工作簿作為附件發送給他人,可依下列步驟操作。
1. 點擊「開發人員」>「插入」>「指令按鈕(ActiveX 控制項)」,然後在工作表中繪製指令按鈕。
提示:若已有指令按鈕,請跳過此步驟。
2. 按下「Alt」+「F11」鍵開啟「Microsoft Visual Basic for Applications」視窗。在視窗中點擊「插入」>「模組」,然後將(用於將當前工作簿作為附件從 Excel 發送郵件的)VBA 程式碼貼到模組(程式碼)視窗中。
注意:這裡您在第2 步建立的巨集名稱為「SendWorkbook」。
3. 按下「Alt」+「Q」鍵關閉「Microsoft Visual Basic for Applications」視窗。
4. 現在需將巨集指派給指令按鈕。右鍵點擊指令按鈕,從右鍵選單選擇「檢視程式碼」。
5.這時會彈出「Microsoft Visual Basic for Applications」視窗,您可在「工作表(程式碼)」視窗中看到下列兩行。
Private Sub CommandButton1_Click()
End Sub
6. 在指令按鈕的子程序內輸入現有巨集名稱。
7. 按下「Alt」+「Q」鍵關閉「Visual Basic 編輯器」,然後點擊「開發人員」>「設計模式」以關閉設計模式。
現在您可以點擊指令按鈕,將當前工作簿作為附件發送郵件。
4.3 從指定的電子郵件帳戶發送郵件
一般情況下,透過 VBA 程式碼從 Excel 發送郵件時,寄件人帳戶會是 Outlook 的預設帳戶。若您在 Outlook 設定了多個帳戶,並希望指定某一帳戶發送郵件而非預設帳戶,可參考下列 VBA 程式碼。
本情境下需用到下列程式碼。
VBA 程式碼1:
Dim OutlookMail As Outlook.MailItem
VBA 程式碼2:
For Each xAccount In OutlookApp.Session.Accounts
If VBA.LCase(xAccount.SmtpAddress) = VBA.LCase("zxm@addin99.com") Then 'Specify your email account here
OutlookMail.SendUsingAccount = xAccount
End If
Next
如何使用上述 VBA 程式碼?
本例將指定某一電子郵件帳戶,將當前工作簿作為附件從 Excel 發送郵件。請依下列步驟操作。
1. 按下「Alt」+「F11」鍵。在「Microsoft Visual Basic for Applications」視窗中,點擊「工具」>「參照」,勾選「Microsoft Outlook16.0 Object Library」,於「參照 – VBAProject」對話框中點擊「確定」。
2. 點擊「插入」>「模組」,然後將下列 VBA 程式碼貼到「模組(程式碼)」視窗中。
VBA 程式碼:透過指定的 Outlook 帳戶將當前工作簿作為郵件附件從 Excel 發送
Sub SendWorkBook()
'Update by Extendoffice 20220809
Dim OutlookApp As Object
Dim OutlookMail As Outlook.MailItem 'important! Here can’t be declared as Object
Dim xAccount As Account
Set OutlookApp = CreateObject("Outlook.Application")
Set OutlookMail = OutlookApp.CreateItem(olMailItem)
On Error Resume Next
'The following lines helps to specify a certian email account
For Each xAccount In OutlookApp.Session.Accounts
If VBA.LCase(xAccount.SmtpAddress) = VBA.LCase("zxm@addin99.com") Then 'Specify your email account here
OutlookMail.SendUsingAccount = xAccount
End If
Next
'End
With OutlookMail
.To = "xxx@aaa.com"
.CC = "Email Address"
.BCC = "Email Address"
.Subject = "kte feature"
.Body = "Hello, please check and read this document, thank you."
.Attachments.Add Application.ActiveWorkbook.FullName
.Display
'.Send
End With
Set OutlookMail = Nothing
Set OutlookApp = Nothing
End Sub
3. 按下「F5」鍵執行程式碼,會彈出 Outlook 郵件視窗,您可看到「寄件者」欄位已填入程式碼中指定的帳戶。
4.4 當日期到達時發送郵件
若需根據特定到期日發送郵件,例如如下圖所示,有一份專案表,當 E2:E7 區域的到期日距今天等於或小於7 天(假設今天為2022/8/4)時,會自動發送郵件給對應專案負責人並通知專案即將到期。
1. 在包含專案表的工作表上,右鍵點擊工作表標籤,選擇「檢視程式碼」。
2. 在開啟的「Microsoft Visual Basic for Applications」視窗中,將下列 VBA 程式碼貼到「工作表(程式碼)」視窗中。
VBA 程式碼:當到期日達成時自動從 Excel 發送郵件
Public Sub SendMailDueDate()
'Updated by Extendoffice 20220804
Dim xRgDate As Range
Dim xRgSend As Range
Dim xRgText As Range
Dim xRgDone As Range
Dim xOutApp As Object
Dim xMailItem As Object
Dim xLastRow As Long
Dim vbCrLf As String
Dim xMailBody As String
Dim xRgDateVal As String
Dim xRgSendVal As String
Dim xMailSubject As String
Dim i As Long
On Error Resume Next
Set xRgDate = Range("E2:E7") 'Please reference the due date column range
If xRgDate Is Nothing Then Exit Sub
Set xRgSend = Range("C2:C7") 'Please reference the email addresses column range
If xRgSend Is Nothing Then Exit Sub
Set xRgText = Range("D2:D7") 'Please reference the remark column range (the remark used to notify project leaders of the expiration of the project)
If xRgText Is Nothing Then Exit Sub
xLastRow = xRgDate.Rows.Count
Set xRgDate = xRgDate(1)
Set xRgSend = xRgSend(1)
Set xRgText = xRgText(1)
Set xOutApp = CreateObject("Outlook.Application")
For i = 1 To xLastRow
xRgDateVal = ""
xRgDateVal = xRgDate.Offset(i - 1).Value
If xRgDateVal <> "" Then
If CDate(xRgDateVal) - Date <= 7 And CDate(xRgDateVal) - Date > 0 Then
xRgSendVal = xRgSend.Offset(i - 1).Value
xMailSubject = xRgText.Offset(i - 1).Value & " on " & xRgDateVal
vbCrLf = "
"
xMailBody = ""
xMailBody = xMailBody & "Dear " & xRgSendVal & vbCrLf
xMailBody = xMailBody & "Remark : " & xRgText.Offset(i - 1).Value & vbCrLf
xMailBody = xMailBody & ""
Set xMailItem = xOutApp.CreateItem(0)
With xMailItem
.Subject = xMailSubject
.To = xRgSendVal
.CC = "Email address"
.BCC = "Email address"
.HTMLBody = xMailBody
.Display
'.Send
End With
Set xMailItem = Nothing
End If
End If
Next
Set xOutApp = Nothing
End Sub
注意事項:
3. 按下「F5」鍵執行程式碼,若到期日符合條件,則會建立對應郵件。本例中會建立兩封郵件,如下圖所示。
5. 實用工具,輕鬆從 Excel 發送郵件
若您是 VBA 新手,上述方法可能較難操作。這裡推薦使用「Kutools for Excel」的發送電子郵件功能,透過此功能,您只需幾個點擊即可輕鬆從 Excel 發送郵件。請依下列步驟操作。
5.1 輕鬆建立包含所需郵件欄位的郵件清單
在使用發送電子郵件功能前,需先建立包含所需郵件欄位的郵件清單。這裡可利用建立郵件清單功能協助您完成。
1. 點擊「Kutools Plus」>「建立郵件清單」。
2. 在開啟的「建立郵件清單」視窗中,請依下列方式設定。
系統會建立一份郵件清單示例表,如下圖所示。
3. 現在請將示例中的原始資料替換為您自己的欄位資料。
現在您已建立郵件清單表,請繼續使用「發送電子郵件」功能,根據所建立的欄位從 Excel 發送郵件。
Kutools for Excel - 超過 300 種必備工具,讓 Excel 功能更強大。永久免費享受 AI 功能!立即獲取
5.2 輕鬆發送包含郵件清單欄位的郵件
建立好包含所需郵件欄位的郵件清單(點此了解如何操作)後,即可利用這些欄位從 Excel 發送郵件。
1. 選取整個郵件清單,點擊「Kutools Plus」>「發送電子郵件」。
2. 在「發送電子郵件」對話框中,請依下列方式設定。
3. 隨後會跳出「Kutools for Excel」對話框,告知已發送郵件數量,點擊「確定」關閉對話框。
提示:您可至 Outlook 的「已發送郵件」資料夾檢查已發送郵件。
5.3 輕鬆發送帶有 HTML內容(含超連結、圖片等)的郵件
發送電子郵件功能允許您建立 HTML 郵件,可包含超連結、圖片、不同字號與顏色等。
建立好包含所需郵件欄位的郵件清單後,在設定發送電子郵件對話框時,可利用工具列上的選項豐富郵件內容。
請參考下圖:
5.4 發送郵件時輕鬆插入 Outlook 預設簽名
上述方法中,我們已示範如何利用 VBA 程式碼發送帶有 Outlook 預設簽名的郵件。若使用發送電子郵件功能,只需勾選一個選項,即可自動在從 Excel 發送的郵件中插入 Outlook 預設簽名。
建立好包含所需郵件欄位的郵件清單後,在設定發送電子郵件對話框時,請點擊「選項」>「使用 Outlook 的簽名設定」。
注意:請確保「使用 Outlook 的簽名設定」選項前有勾選。
收件人收到郵件時,可在郵件內容結尾看到 Outlook 預設簽名。
5.5 輕鬆從指定電子郵件帳戶發送郵件
若需指定某一電子郵件帳戶從 Excel 發送郵件而非預設帳戶,發送電子郵件功能也可輕鬆實現。
建立好包含所需郵件欄位的郵件清單後,在設定發送電子郵件對話框時,請點擊「選項」>「發送自」,然後選擇所需的電子郵件帳戶。
注意:選擇電子郵件帳戶後,前方會顯示勾選標記。
Kutools for Excel - 超過 300 種必備工具,讓 Excel 功能更強大。永久免費享受 AI 功能!立即獲取
總結來說,從 Excel 發送郵件在日常工作中非常實用。本文涵蓋了從 Excel 發送郵件的多種主題,若有其他主題或更簡單的解決方案,歡迎留言告知。
最佳辦公效率工具
🤖 | Kutools AI 助手:基於智能執行方式革新數據分析:智能執行 | 生成代碼 | 創建自訂公式 | 分析數據並生成圖表 | 調用 Kutools 函數… |
熱門功能:查找、標記重複值或識別重複項 | 刪除空行 | 合併列或單元格而不丟失數據 | 四捨五入無需公式 ... | |
高級 LOOKUP: 多條件 VLookup | 多值 VLookup | 多表查找 | 模糊查找 .... | |
高級下拉列表:快速創建下拉列表 | 依賴下拉列表 | 多選下拉列表 .... | |
列管理器: 添加特定數量的列 | 移動列 | 切換隱藏列的可見狀態 | 比較區域和列 ... | |
特色功能:網格聚焦 | 設計檢視 | 增強編輯欄 | 工作簿與工作表管理器 | 資源庫(自動文本) | 日期提取器 | 合併資料 | 加密/解密儲存格 | 按列表發送電子郵件 | 超級篩選 | 特殊篩選(篩選粗體/斜體/刪除線...) ... | |
頂級 15 種工具集: 12 個文本工具(添加文本、刪除特定字符、...) | 50+ 圖表 類型(甘特圖、...) | 40+ 實用 公式(基於生日計算年齡、...) | 19 個插入工具(插入QR碼、根據路徑插入圖片、...) | 12 個轉換工具(金額轉大寫、匯率轉換、...) | 7 個合併與分割工具(高級合併行、分割儲存格、...) | ... 還有更多 |
使用 Kutools for Excel 提升您的 Excel 技巧,體驗前所未有的高效。 Kutools for Excel 提供超過 300 種高級功能來提高生產力並節省時間。 點擊這裡獲取您最需要的功能...
Office Tab 將標籤式界面帶到 Office,讓您的工作更加輕鬆
- 在 Word、Excel、PowerPoint、Publisher、Access、Visio 和 Project 中啟用標籤式編輯和閱讀。
- 在同一窗口的新標籤中打開和創建多個文檔,而不是在新窗口中。
- 將您的生產力提高 50%,每天為您減少數百次鼠標點擊!