Domanda

L'obiettivo generale è quello di prendere il testo formattato RTF in Excel e convertirlo in HTML.Non sono stato in grado finora per ottenere Excel per rispondere in un modo ragionevole così provato a usare Word.Sono in grado di convertire in Word senza problemi, quindi vuoi automatizzare il processo copiando la cella Out Excel, incollando in parole e quindi eseguire il codice per convertire la formattazione nel modo in cui voglio.

Sto correndo in un problema in cui quando ho incollato in parola da Excel VBA, la pasta ha successo ma poi salta a 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
.

Ho provato a utilizzare Worddoc e WordApp, sia incollando che in pasta, ma ha sempre lo stesso risultato.

Qualcuno ha qualche idea su cosa sta succedendo qui o come fermarlo dal fine che finisce dopo la pasta.

Modifica: ho testato questo e ha funzionato su Office 2010. Non funziona su Office 2013.

È stato utile?

Soluzione 2

sembra essere risolto.Il debugger VBA non riesce a capire cosa sta succedendo dopo aver colpito la sezione WordApp e quindi il codice appare per saltare alla fine della sezione.

Inoltre, sembra che qualsiasi alterazioni delle parole debba essere eseguita all'interno della sezione With wordDoc in quanto può essere un po 'strano nel colpire correttamente il codice tra a volte (anche se non ha mai capito perché mancava la casella dei messaggi mancanti per la prima volta). Grazie @brettdj per aiuto con test e scuse per il mio errore nel comprendere cosa stava succedendo.

Altri suggerimenti

Ha funzionato bene per me come

Ma suggerisci di provare questi modifiche per vedere se funziona (AppActivate è ridondante).

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

Main

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
.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top