Tabelle exportieren nach outlook von excel -, blackberry-freundlich
So sammelte ich von verschiedenen Orten auf das internet einige code, um eine Tabelle exportieren, in outlook und senden Sie es automatisch an, und habe gerade bemerkt, dass die E-Mail ist nicht wirklich blackberry freundlich (vor allem aufgrund der Tatsache, dass die E-Mail-Text wird als HTML und nicht als "Rich Text", ERINNERN sich die Tabelle muss auch im rich-format). Mir fehlt eine Zeile code, die Ihnen sagen wird outlook zum senden von E-Mail als "Rich-Text" aber ich weiß nicht, was es ist. Kann mir jemand helfen? Bitte sehen vollständige code unten angehängt (bitte entschuldigt die Länge des Codes im Voraus).
Dank
P
Sub Mail_Sheet_Outlook_Body()
Dim rng As Range
Dim OutApp As Object
Dim OutMail As Object
With Application
.EnableEvents = False
.ScreenUpdating = False
End With
Set rng = Nothing
Set rng = Selection.SpecialCells(xlCellTypeVisible)
Set OutApp = CreateObject("Outlook.Application")
Set OutMail = OutApp.CreateItem(0)
On Error Resume Next
With OutMail
.To = "[email protected]"
.CC = ""
.BCC = ""
.Subject = "Enter Subject text here"
.HTMLBody = RangetoHTML(rng)
'.Attachments.Add ("c:\temp\" & ActiveSheet.Range("DateSerial").Value & ".pdf")
.Display
End With
On Error GoTo 0
With Application
.EnableEvents = True
.ScreenUpdating = True
End With
Set OutMail = Nothing
Set OutApp = Nothing
End Sub
Function RangetoHTML(rng As Range)
' Works in Excel 2000, Excel 2002, Excel 2003, Excel 2007, Excel 2010, Outlook 2000, Outlook 2002, Outlook 2003, Outlook 2007, and Outlook 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 workbook to receive the data.
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 an .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 the RangetoHTML subroutine.
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.
Kill TempFile
Set ts = Nothing
Set fso = Nothing
Set TempWB = Nothing
End Function
InformationsquelleAutor macutan | 2012-01-25
Du musst angemeldet sein, um einen Kommentar abzugeben.
Hintergrund zu beantworten
Ziel der Frage war es, in der Lage sein, um eine Excel-Tabelle per E-Mail versendet, lesbar auf einem Blackberry. Es gab eine Reihe von roten Heringen, bevor die Ursache des Problems wurde identifiziert als Excel PublishObjects. Möglicherweise wurde das Problem der vielen unnötigen CSS-Formate oder die Größenbestimmung von Zellen und Schriftarten in Punkte, aber, was auch immer das Problem, die HTML nicht korrekt gerendert werden, indem Sie das Blackberry-display-engine.
Erstellte ich ein ziemlich einfaches Stück von VBA-code zum erstellen einer HTML-Tabelle aus einem Bereich. Es kopiert die Werte, Fett, Kursiv, schriftart, Hintergrundfarbe und die Spaltenbreite von Excel zur HTML Tabelle. Obwohl die erste version nicht erfüllen, macutan ist voller Anforderungen, es wurde gezeigt, dass der Ansatz sinnvoll: ein HTML - /CSS-Tabelle mit einem minimum an Formatierung richtig angezeigt wird und Ansprechend auf ein Blackberry.
Als ich auf weitere Verbesserungen erfüllen die macutan Anforderungen, entdeckte ich das gleiche problem existiert auch mit anderen Smartphones, und es war eine Allgemeine Notwendigkeit für eine solche routine. Ich weiter an der routine, mit der Absicht, dass die Finale version kopiert alle Excel-Formatierung der HTML-Tabelle.
Den code und die Anleitung bald überschritten Stack-Überlauf die Grenze von 30.000 Zeichen. Ich verabschiedete neue Versionen zu macutan per E-Mail. Die Dokumentation aus dem code-Modul ist unten. Wenn Sie einen Blick auf mein Profil da ist ein E-Mail-Adresse. Ich werde Kopien weiterleiten an meinem code auf Anfrage.
InformationsquelleAutor Tony Dallimore
In Ihrem Mit block, legen Sie die
BodyFormat
EigenschaftolFormatRichText
.Lassen Sie uns wissen, ob das funktioniert.
Edit:
Einstellung der
HTMLBody
Eigenschaft konvertiert die E-Mails zu HTML. Wenn Sie dieBodyFormat
EigenschaftolFormatRichText
dann müssten Sie dieBody
Eigenschaft, die beseitigen würde die Möglichkeit der Verwendung von HTML.Also ich sehe keine Möglichkeit, Sie könnte beides einrichten der E-Mail mit einer HTML-Tabelle und senden Sie Sie als Rich Text format.
OK, Einstellung
.HTMLBody
verändert sich der Körper-format. Und versuchen, zu ändern die Körper-Format, wird wahrscheinlich das zerstören von HTML präsentieren. Also ich glaube, Sie müssen wählen Sie ein format aus, und bleiben Sie dabei-Sie können nicht die HTMLBody-und noch ein Rich-Text-E-Mail.Sicher, ich verstehe. aus irgendeinem Grund eine E-Mail im HTML-format kommen nicht in ein blackberry... ich versuche eine Lösung zu suchen, aber nicht finden, alles, was online...
Werde ich ändern, meine Antwort.
Danke JP, ich Stimme mit Ihrer Antwort, ich bin immer noch versuchen, eine Lösung zu finden, kann jemand mich leiten. Wie Sie sagen, änderte ich das .HTMLBody an .Körper und jetzt bekomme ich HTML-code in der E-Mail (Rich Text format)... ist es ein Weg, um fügen Sie der Tabelle? Ich weiß nicht, warum ich kann nicht herausfinden, einen Weg zu etwas, das so einfach aussieht.
InformationsquelleAutor JimmyPena