Wie halten Sie Formate beim kopieren einer Reihe von Excel nach outlook
Hallo, ich habe eine Excel Tabelle mit einigen Formaten 10(Rot) -> 15(Grün), aber am Ende verliere ich alle Formate die ich habe in meinem excel. Ich benutze folgenden code zum senden und E-Mail aus einer Reihe zu outlook
Sub email()
Dim OutApp As Object
Dim OutMail As Object
Dim Fname As String
Dim hoja As String
Dim rng As Range
Dim celdas As String
Set OutApp = CreateObject("Outlook.Application")
Set OutMail = OutApp.CreateItem(0)
Set rng = Range("C3:Q22")
On Error Resume Next
With OutMail
.To = "juan"
.CC = "Maria"
.BCC = ""
.Subject = "XXXX"
.HTMLBody = "Hey" & RangetoHTML(rng)
.Display 'or use .Display
End With
On Error GoTo 0
'Kill Fname
Set OutMail = Nothing
Set OutApp = Nothing
End Sub
und die nächste Funktion, die ich kopiert aus dem nächsten link Wie zum senden von mails aus excel
Function RangetoHTML(rng As Range)
' Changed by Ron de Bruin 28-Oct-2006
' Working in Office 2000-2010
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
InformationsquelleAutor Jonathan Raul Tapia Lopez | 2013-03-04
Du musst angemeldet sein, um einen Kommentar abzugeben.
Während OP ' s akzeptierte Antwort für ihn gearbeitet, ich glaube nicht, dass es die richtige Antwort.
Wenn Sie möchten, um die Formatierung der Quelle, die Sie verwenden müssen xlPasteAllUsingSourceTheme
Code:
InformationsquelleAutor Jonathan Porter
Ok fand ich, wie Sie es gemacht haben, in rangetoHtml(), Wann ist das einfügen der Werte habe ich geändert, der code für:
Becase, Wenn ich nur eine Kopie und paste ich nicht verloren-format.
InformationsquelleAutor Jonathan Raul Tapia Lopez