Hur skickar / skickar jag cellutbud via Outlook från Excel?
Har du någonsin drabbats av ett problem som efter att ha avslutat en rapport i ett kalkylblad, och du måste skicka till ett antal celler i det här kalkylbladet som innehåller viktiga data till din specifika mottagare. Finns det några snabba sätt för dig att skicka det här intervallet från Excel utan att öppna Outlook?
Skicka cellintervall som bilaga från Excel med VBA-kod
Skicka cellintervall som kropp från Excel med VBA-kod
Skicka cellintervall som bilaga från Excel med VBA-kod
Följande VBA-kod kan hjälpa dig att skicka ditt valda intervall som bilaga i Excel. Gör så här:
1. Öppna arbetsboken och håll ned ALT + F11 nycklar för att öppna Microsoft Visual Basic for Applications-fönstret.
2. Klicka Insert > Modulernaoch klistra in följande kod i Modulfönster.
VBA-kod: skicka cellintervall som bilaga från Excel
Sub SendRange()
'Update 20131209
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 = ""
.CC = ""
.BCC = ""
.Subject = "information of kte"
.Body = "hello, please check and read this document. "
.Attachments.Add Wb2.FullName
.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
Anmärkningar: I ovanstående kod kan du ändra följande information efter eget behov.
- .Till = ""
- .CC = ""
- .BCC = ""
- .Subject = "information om kte"
- .Body = "hej, kontrollera och läs det här dokumentet."
3. Klicka sedan F5 för att köra den här koden, och en snabbruta dyker upp för att påminna dig om att välja ett intervall som du vill skicka. Se skärmdump:
4. Klicka sedan OK, och en snabbruta visas, efter att förloppsindikatorn är klar klickar du på Tillåt, och sedan har det specifika cellområdet skickats till din mottagare som en bilaga.
Skicka cellintervall som kropp från Excel med VBA-kod
Om du vill skicka ett visst intervall som en del av meddelandetexten från Excel kan du också använda följande VBA-kod för att lösa det.
Kutools for Excel, med mer än 120 praktiska funktioner, underlättar dina jobb. | ||
1. Aktivera kalkylbladet och håll ned ALT + F11 nycklar för att öppna Microsoft Visual Basic for Applications-fönstret.
2. Klicka Insert > Modulernaoch klistra in följande kod i Modulfönster.
VBA-kod: skicka cellintervall som kropp från Excel
Sub EmailRange()
'Update 20131209
Dim WorkRng As Range
On Error Resume Next
xTitleId = "KutoolsforExcel"
Set WorkRng = Application.Selection
Set WorkRng = Application.InputBox("Range", xTitleId, WorkRng.Address, Type:=8)
Application.ScreenUpdating = False
WorkRng.Select
ActiveWorkbook.EnvelopeVisible = True
With ActiveSheet.MailEnvelope
.Introduction = "Please read this email."
.Item.To = ""
.Item.Subject = "information of kte"
.Item.Send
End With
Application.ScreenUpdating = True
End Sub
Notera: I ovanstående kod kan du ändra följande information efter dina behov.
- .Introduction = "Läs detta e-postmeddelande."
- .Item.To = ""
- .Item.Subject = "information om kte"
3. Klicka sedan F5 för att köra den här koden och en snabbruta dyker upp för att påminna dig om att välja ett intervall som du vill skicka.
4. Klicka sedan på OK, och en snabbruta visas, efter att förloppsindikatorn är klar klickar du på Tillåt, och sedan har det specifika cellområdet skickats till din mottagare som meddelandetext.
Anmärkningar:
1. Dessa koder är endast tillgängliga när Outlook är ditt e-postprogram.
2. Efter att ha skickat det aktuella kalkylbladet kan du gå till din Outlook för att se till om e-postmeddelandet har skickats.
Relaterade artiklar:
Hur skickar jag bara kalkylblad via Outlook från Excel?
Hur skickar jag aktuell arbetsbok via Outlook från Excel?
Bästa kontorsproduktivitetsverktyg
Överlägsna dina Excel-kunskaper med Kutools for Excel, och upplev effektivitet som aldrig förr. Kutools for Excel Erbjuder över 300 avancerade funktioner för att öka produktiviteten och spara tid. Klicka här för att få den funktion du behöver mest...
Office Tab Ger gränssnitt med flikar till Office och gör ditt arbete mycket enklare
- Aktivera flikredigering och läsning i Word, Excel, PowerPoint, Publisher, Access, Visio och Project.
- Öppna och skapa flera dokument i nya flikar i samma fönster, snarare än i nya fönster.
- Ökar din produktivitet med 50 % och minskar hundratals musklick för dig varje dag!

















