Question

L'objectif général est de prendre du texte au format RTF dans Excel et de le convertir en HTML.Jusqu'à présent, je n'ai pas réussi à faire répondre Excel de manière raisonnable, j'ai donc essayé d'utiliser Word.Je suis capable de convertir dans Word sans problème, je souhaite donc automatiser le processus en copiant la cellule dans Excel, en la collant dans Word, puis en exécutant du code pour convertir le formatage comme je le souhaite.

Je rencontre un problème où lorsque je colle dans Word à partir d'Excel VBA, le collage réussit mais passe ensuite à 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

J'ai essayé d'utiliser à la fois wordDoc et wordApp, ainsi que Paste et Pastespecial, mais cela a toujours le même résultat.

Quelqu'un a-t-il des idées sur ce qui se passe ici ou sur la façon d'empêcher que cela se termine toujours après le collage.

MODIFIER:J'ai testé cela et cela a fonctionné sur Office 2010.Cela ne fonctionne pas sur Office 2013.

Était-ce utile?

La solution 2

Semble être résolu.Le débogueur VBA ne peut pas comprendre ce qui se passe après avoir atteint la section WordApp et donc le code apparaît pour passer à la fin de la section.

De plus, il semble que toute modification de mot devrait être effectuée dans le cadre du With wordDoc car il peut parfois être un peu étrange de frapper correctement le code entre les deux (même si je n'ai jamais compris pourquoi il manquait la boîte de message la première fois).

Merci @brettdj pour votre aide lors des tests et excuses pour mon erreur de compréhension de ce qui se passait.

Autres conseils

Cela a bien fonctionné pour moi tel quel

Mais je vous suggère d'essayer ces ajustements pour voir si cela fonctionne (AppActivate est redondant).

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

principal

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
Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top