Le collage VBA d'Excel vers Word se termine sous
-
23-12-2019 - |
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.
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