/ / Копіювати діапазон комірок з Excel у тіло електронної пошти в Outlook - excel, vba, excel-vba, outlook, outlook-vba

Скопіюйте діапазон клітин від Excel до тіла електронної пошти в Outlook - excel, vba, excel-vba, outlook, outlook-vba

Як я можу скопіювати діапазон комірок з Excel утіло електронної пошти в Outlook (не додавати файл Excel як вкладення) за допомогою VBA. Мені просто потрібен вміст, щоб бути тілом пошти Outlook. Чи може хтось допомогти мені кодувати цей за допомогою макросу?

Відповіді:

2 для відповіді № 1

Ви можете знайти упаковане рішення тут: http://www.rondebruin.nl/mail/folder1/mail4.htm

Sub Mail_Range()
"Working in 2000-2010
Dim Source As Range
Dim Dest As Workbook
Dim wb As Workbook
Dim TempFilePath As String
Dim TempFileName As String
Dim FileExtStr As String
Dim FileFormatNum As Long
Dim I As Long

Set Source = Nothing
On Error Resume Next
Set Source = Range("A1:K50").SpecialCells(xlCellTypeVisible)
On Error GoTo 0

If Source Is Nothing Then
MsgBox "The source is not a range or the sheet is protected, " & _
"please correct and try again.", vbOKOnly
Exit Sub
End If

With Application
.ScreenUpdating = False
.EnableEvents = False
End With

Set wb = ActiveWorkbook
Set Dest = Workbooks.Add(xlWBATWorksheet)

Source.Copy
With Dest.Sheets(1)
.Cells(1).PasteSpecial Paste:=8
.Cells(1).PasteSpecial Paste:=xlPasteValues
.Cells(1).PasteSpecial Paste:=xlPasteFormats
.Cells(1).Select
Application.CutCopyMode = False
End With

TempFilePath = Environ$("temp") & ""
TempFileName = "Range of " & wb.Name & " " _
& Format(Now, "dd-mmm-yy h-mm-ss")

If Val(Application.Version) < 12 Then
"You use Excel 2000-2003
FileExtStr = ".xls": FileFormatNum = -4143
Else
"You use Excel 2007-2010
FileExtStr = ".xlsx": FileFormatNum = 51
End If

With Dest
.SaveAs TempFilePath & TempFileName & FileExtStr, _
FileFormat:=FileFormatNum
On Error Resume Next
For I = 1 To 3
.SendMail "ron@debruin.nl", _
"This is the Subject line"
If Err.Number = 0 Then Exit For
Next I
On Error GoTo 0
.Close SaveChanges:=False
End With

"Delete the file you have send
Kill TempFilePath & TempFileName & FileExtStr

With Application
.ScreenUpdating = True
.EnableEvents = True
End With
End Sub

З повагою,


1 для відповіді № 2

Побачити тут якщо це може допомогти вам.

Я шукав рішення для копіювання / вставки кількох комірок Excel 2007 у тіло пошти Outlook із VBA, але ні прямого копіювання / вставки, ні MsgBody.HTMLBody = Range.Text або працював буфер обміну (через DataObject). Тоді я відчув це попереднє рішення, і воно вирішує мою проблему, сподіваюся, це допоможе і вам :)

Ура!