2017-08-23 4 views
1

では、私は二回、クリップボードの内容をご確認のコピーこのweb pageからすべてのテキスト、Documents.Add.Content.Paste - エラー4198 VBA

アプリケーションを書かれています。最初に、クリップボードからテキストを貼り付けるときにWordでWebページをコピーした外部プログラムで、エラーが発生しました。

いずれにしても、私はタイマーを追加しましたが、テキストがクリップボードにあるため、必要ではありません。

Dim BufObj As MSForms.DataObject, BufTxt As String 
Set BufObj = New MSForms.DataObject 
BufObj.GetFromClipboard 
BufTxt = BufObj.GetText ' I added BufTxt to watch panel 

Dim tmpStart 
tmpStart = Timer 
Do 
    DoEvents 
Loop While (tmpStart + 1) > Timer 

Documents.Add.Content.Paste 

一部のページでは、テキストを処理して貼り付けます。しかし、この1つではありません。デバッガが回線上で停止しましたDocuments.Add.Content.Paste

問題を解決する方法がありますか?私はこれを見たlink。リンクを削除するための答え提案はどこにありますか、そこにコードを見つける方法はありません。

編集:

コードが更新されますが、それでもエラーが発生します。私は、デバッガが壊れたときに、マクロを停止した後、クリップボード(Ctrl + V)からデータを貼り付けることができないことを発見しました。しかし、BufTxtには、デバッガでチェックしたときにテキストが含まれていました。

+0

あなたはこれを見ましたか? https://social.msdn.microsoft.com/Forums/office/en-US/84628eed-a242-42db-8dd9-19c40c10969f/word2013-vba-runtime-error-4198?forum=worddev – jsotola

答えて

0

このテストコードを試してください。クリップボードからテキストを100回挿入します。

は何のペースト機能は、私は、問題を修正したシンプルな最初のコマンド

Documents.Add DocumentType:=wdNewBlankDocument 

の除去ことがわかった(私は推測しています)

Sub appendFromClip() 

    Dim BufObj As MSForms.DataObject 
    Set BufObj = New MSForms.DataObject ' clipboard object 

    Dim doc As Document 
    Set doc = Documents.Add(DocumentType:=wdNewBlankDocument) 

    Dim rng As Range 
    Set rng = doc.Range     ' whole document 

    Dim i As Integer 
    For i = 1 To 100      ' test: repeat a bunch of text appends 

     rng.Collapse wdCollapseEnd  ' collapse range into an insert point at end of document 

     BufObj.GetFromClipboard 
     rng = BufObj.GetText    ' note: rng becomes the range of the added text, so you have to collapse rng before adding more text 

    Next i 

End Sub 
+0

出来た。しかし、問題は、列にコンテンツを配置するために使用するため、テキストにとどまるためにテーブルが必要なことです。あなたのコードはテーブルを削除しました。 – user1141649

+0

はクリップボードのテーブルですか? – jsotola

+0

はい。ウェブページの表です。投稿が編集されました。私はmakroが停止したときにCtrl + vを押してもクリップボードからデータを貼り付けることができないことを発見しました。 – user1141649

0

使用されていないので、改ページは、それに影響を与えるべきではありません。私はクリップボードを貼り付けたときに2つのウィンドウを開いていました。削除後、プログラムは速く実行され、エラーは発生しません。