Frage

Das übergeordnete Ziel besteht darin, RTF-formatierten Text in Excel zu übernehmen und ihn in HTML zu konvertieren.Bisher konnte ich Excel nicht dazu bringen, vernünftig zu reagieren, also habe ich es mit Word versucht.Ich kann problemlos in Word konvertieren und möchte daher den Vorgang automatisieren, indem ich die Zelle aus Excel kopiere, sie in Word einfüge und dann Code ausführe, um die Formatierung in die von mir gewünschte Weise zu konvertieren.

Ich stoße auf ein Problem, bei dem beim Einfügen in Word aus Excel VBA das Einfügen erfolgreich ist, aber dann zu springt End Sub.

Sub webtext(r As String)
    Range(r).Copy
    Dim wordApp As Word.Application
    Dim wordDoc As Word.Document
    Set wordApp = CreateObject("word.Application")
    Set wordDoc = wordApp.Documents.Add
    wordApp.Visible = True
    wordApp.Activate

    wordApp.Selection.PasteSpecial

    'Any code here is missed out
    z = MsgBox("tada") 'this will never trigger
    x=5 'this will never set
    With wordDoc
        'Operations on the text pasted would happen here
        'but vba never gets here.
    End With

'Code jumps to here
End Sub

Ich habe versucht, sowohl WordDoc als auch WordApp sowie Paste und PasteSpecial zu verwenden, aber es hat immer das gleiche Ergebnis erzielt.

Hat jemand eine Idee, was hier vor sich geht oder wie man verhindern kann, dass es immer nach dem Einfügen endet?

BEARBEITEN:Ich habe es getestet und es hat unter Office 2010 funktioniert.Es funktioniert nicht unter Office 2013.

War es hilfreich?

Lösung 2

Scheint gelöst zu sein.Der VBA-Debugger kann nicht verstehen, was vor sich geht, nachdem er den WordApp-Abschnitt und damit den Code erreicht hat erscheint um zum Ende des Abschnitts zu springen.

Darüber hinaus scheint es, dass alle Wortänderungen innerhalb der vorgenommen werden sollten With wordDoc Abschnitt, da es manchmal etwas seltsam sein kann, den Code dazwischen richtig zu treffen (obwohl ich beim ersten Mal nie herausgefunden habe, warum das Meldungsfeld fehlte).

Danke @brettdj für die Hilfe beim Testen und entschuldige mich für meinen Fehler beim Verstehen, was vor sich ging.

Andere Tipps

Bei mir hat es so wie es ist gut funktioniert

Wir empfehlen Ihnen jedoch, diese Optimierungen auszuprobieren, um zu sehen, ob dies funktioniert (AppActivate ist überflüssig).

Sub StartIt()
Call webtext("a1:a10")
End Sub

hauptsächlich

Sub webtext(r As String)
    Range(r).Copy
    Dim wordApp As Word.Application
    Dim wordDoc As Word.Document
    Set wordApp = New Word.Application
    Set wordDoc = wordApp.Documents.Add
    wordApp.Visible = True

    With wordDoc
    .ActiveWindow.Selection.Paste
    End With

End Sub
Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top