Ich habe Anfang der Woche eine Frage zur Konvertierung von HTML in Excel gestellt, die bei mir gut funktioniert hat. Der Beispielmakrocode, der mir zur Verfügung gestellt wurde, leistete gute Arbeit bei der Konvertierung des Codes vom HTML-Format in eine Excel-Zelle (danke Siddharth Rout!). Das Problem, auf das ich jetzt stoße und für das ich nirgendwo eine Antwort finden kann, hat damit zu tun, wie das IE-Objekt Absätze, Umbrüche und Listenelemente in Excel behandelt. p, br und li verschieben den Text in Zellen unterhalb der Ursprungszelle und überschreiben alle Daten, die sich in diesen Zellen befanden. Gibt es eine Möglichkeit, den HTML-Block in nur einer Zelle anzuzeigen (d. h. jedes neue Zeilentag würde nur eine neue Zeile in derselben Zelle erzeugen)?
VBA-Code
Sub Sample()
Dim Ie As Object
Set Ie = CreateObject("InternetExplorer.Application")
With Ie
.Visible = False
.Navigate "about:blank"
.document.body.InnerHTML = Sheets("Sheet1").Range("A1").Value
.document.body.createtextrange.execCommand "Copy"
ActiveSheet.Paste Destination:=Sheets("Sheet1").Range("A1")
.Quit
End With
End Sub
Beispiel-HTML
<p> Here are some possible uses:</p> <ul> <li><font color = "red"> syntax highlighting code snippets</font></li> <li style ="font-weight:bold; color: orange">validating credit card numbers, phone numbers, and zip codes</li> <li style = "font-style: italic">styling email addresses and tags</li> </ul>
Beispielhafte Ausgabe die in mehreren Zeilen angezeigt wird (möchte in einer Zelle in mehreren Zeilen angezeigt werden - ähnlich wie bei der Funktion von Umschalt+Eingabe)
Here are some possible uses:
syntax highlighting code snippets
**validating credit card numbers, phone numbers, and zip codes**
*styling email addresses and tags*