Unter Verwendung der Funktion RangeToHTML von Ron de Bruin passe ich einen Bereich in einen an Outlook-E-Mail. Es scheint jedoch, dass eine zusätzliche leere Zeile in die E-Mail eingefügt wird:
Ich habe bereits bestätigt, dass die Zeile Source:=TempWB.Sheets(1).UsedRange.Address
nur die Daten selbst und nicht eine zusätzliche Zeile korrekt erfasst. Ich habe auch bestätigt, dass der Eingabebereich für RangetoHTML()
ebenfalls korrekt ist. Meine einzige Vermutung ist, dass die .ReadAll
-Methode irgendwie eine zusätzliche Zeile in die Datei schreibt, aber ich bin mir nicht sicher, wie ich das debuggen soll. Hier ist die Funktion RangetoHTML
, die ich zur einfachen Bezugnahme verwende:
EDIT: Hier ist der Teil des Codes, wo die E-Mail generiert wird. Die RangeToHTML(rng_Summary)
fügt den Bereich in die E-Mail ein:
Workbook.PublishObjects
enthält eine zusätzliche Zeile zum Erzwingen der Spaltenbreiten.
Verwenden Sie die Antwort von @ EngineerToast auf Ersetzen nur das letzte Auftreten einer Übereinstimmung in einer Zeichenfolge in VBA können wir die letzte Zeile verbergen, während Spaltenbreiten beibehalten werden.
%Vor%Nachdem ich die Ausgabe von RangetoHTML überprüft hatte, bemerkte ich, dass die erste Zeile auch die Spaltenbreiten erzwingt. Nichtsdestoweniger wird getTrimRangetoHTML das gewünschte Ergebnis liefern, die letzte Zeile zu verstecken.