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.

Foi útil?

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
Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top