簡體   English   中英

VBA從Excel粘貼到Word結尾子

[英]VBA paste from Excel to Word ends sub

總體目標是在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以及粘貼和pastespecial,但始終具有相同的結果。

是否有人對粘貼后發生的事情或如何阻止其始終結束有任何想法?

編輯:我已經對此進行了測試,並且它可以在Office 2010上工作。它不能在Office 2013上工作。

它對我來說很好

但是建議您嘗試這些調整,看看是否AppActivateAppActivate是多余的)。

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

似乎有待解決。 VBA調試器在點擊WordApp部分后無法理解發生了什么,因此代碼似乎跳到了該部分的末尾。

此外,似乎任何單詞更改都應在With wordDoc部分中進行,因為有時在兩者之間正確命中代碼可能有些奇怪(盡管從未弄清楚為什么第一次缺少消息框)。

感謝@brettdj在測試和道歉方面所提供的幫助,以幫助我理解所發生的錯誤。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM