문제

전반적인 목표는 Excel에서 RTF 형식의 텍스트를 가져와 HTML로 변환하는 것입니다.지금까지 Excel이 합리적인 방식으로 응답하도록 할 수 없었기 때문에 Word를 사용해 보았습니다.문제 없이 Word에서 변환할 수 있으므로 Excel에서 셀을 복사하고 Word에 붙여넣은 다음 코드를 실행하여 서식을 원하는 방식으로 변환하여 프로세스를 자동화하고 싶습니다.

Excel VBA에서 Word에 붙여넣을 때 붙여넣기에 성공했지만 다음으로 이동하는 문제가 발생했습니다. 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

나는 wordDoc과 wordApp을 모두 사용해 보았고, Paste와 Pastespecial을 모두 사용해 보았지만 항상 같은 결과를 얻었습니다.

여기서 무슨 일이 일어나고 있는지 또는 붙여넣기 후에 항상 끝나지 않도록 하는 방법에 대한 아이디어가 있는 사람이 있습니까?

편집하다:나는 이것을 테스트했고 Office 2010에서 작동했습니다.Office 2013에서는 작동하지 않습니다.

도움이 되었습니까?

해결책 2

해결된 것 같습니다.VBA 디버거는 WordApp 섹션에 도달한 후 무슨 일이 일어나고 있는지 이해할 수 없으므로 코드는 나타납니다 섹션의 끝으로 이동합니다.

또한, 단어 변경은 모두 내에서 이루어져야 할 것 같습니다. With wordDoc 섹션 사이에 코드를 제대로 입력하는 것이 약간 이상할 수 있기 때문입니다(처음에는 왜 메시지 상자가 누락되었는지는 알 수 없었지만).

테스트에 도움을 주신 @brettdj에게 감사드리며, 무슨 일이 일어나고 있는지 이해하는 데 오류가 있어서 사과드립니다.

다른 팁

그것은 나에게 괜찮아 왔는데

그러나이 작업이 작품 (AppActivate가 중복되는지 확인하십시오.

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

주요

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
.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top