VBA colar do Excel para o Word termina sub
-
23-12-2019 - |
Pergunta
O objetivo global é levar RTF texto formatado em Excel e convertê-lo para HTML.Eu não tenha conseguido, até agora, para obter Excel para responder de uma maneira sensata para fechar a utilizar o Word.Eu sou capaz de converter-se em Palavra, sem problema, a fim de automatizar o processo de copiar a célula para fora do Excel, colando no Word e, em seguida, executar o código para converter a formatação para o jeito que eu quero.
Eu estou correndo em um problema que quando eu colar no Word a partir de VBA do Excel, o colar é bem-sucedida, mas, em seguida, ele vai para 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
Eu tentei usar tanto wordDoc e wordApp, e colar e pastespecial, mas ele tem sempre o mesmo resultado.
Alguém tem alguma idéia do que está acontecendo aqui, ou como parar com isso de sempre termina após a colagem.
EDITAR:Eu testei isso e funcionou no Office 2010.Ele não funciona no Office 2013.
Solução 2
Parece ser resolvidos.VBA depurador não pode entender o que está acontecendo depois que ele atinge o WordApp seção e então o código aparece pular para o final da seção.
Além disso, parece que qualquer palavra alterações deve ser feito dentro do With wordDoc
seção como ele pode ser um pouco estranho em bater o código corretamente no entre, por vezes, (embora nunca descobri por que estava faltando caixa de mensagem rodada pela primeira vez).
Obrigado @brettdj para ajudar com os testes e desculpas pelo meu erro na compreensão do que estava acontecendo.
Outras dicas
Ele funcionou bem para mim, como é
Mas sugiro que você tente estes ajustes para ver se funciona (AppActivate
é redundante).
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