2016-08-30 14 views
2

Excelワークブックに複数のシートがあります。その中で私はループで反復処理を行い、データ範囲をコピーして単語に貼り付けます。Wordドキュメントの内容を置き換える代わりに追加します

問題は、シートの内容がコピーされ、以前のすべてのコンテンツが消える単語に貼り付けるたびに発生します。

これまでの内容の置き換えをやめて、VBAスクリプトをWord文書に追加するにはどうすればよいですか?

Sub ewc() 

    Dim WordApp As Word.Application 
    Dim myDoc As Word.Document 
    Dim WordTable As Word.Table 
    Dim ws As Worksheet 
    Dim tbl As ListObject 

    Application.ScreenUpdating = False 
    Application.EnableEvents = False 

    Set WordApp = GetObject(class:="Word.Application") 

    WordApp.Visible = True 
    WordApp.Activate 

    Set myDoc = WordApp.Documents.Open("D:\asd.docx") 

    For Each ws In ThisWorkbook.Worksheets 
     Debug.Print ws.Name, ThisWorkbook.Worksheets.Count 

     ws.UsedRange.Activate 
     LastRow = StartCell.SpecialCells(xlCellTypeLastCell).Row 
     LastColumn = StartCell.SpecialCells(xlCellTypeLastCell).Column 
     Debug.Print LastRow, LastColumn 

     ws.Range(StartCell, ws.Cells(LastRow, LastColumn)).Select 
     myDoc.Content.Paste 

     Set WordTable = myDoc.Tables(1) 
     WordTable.AutoFitBehavior (wdAutoFitWindow) 
     myDoc.Save 


EndRoutine: 
     Application.ScreenUpdating = True 
     Application.EnableEvents = True 

'Clear The Clipboard 
     Application.CutCopyMode = False 
    Next ws 
End Sub 
+0

が必要既存のテキストをコピーして既存のテキストをコピーし、その上に新しいテキストを貼り付けることができますか?私はWord VBAであまり成し遂げられていないが、うまくいかないとは思えない。それのためのタグがあるかもしれませんか? –

答えて

4

myDoc.Content.Pasteは、myDoc.Contentのすべてを置き換えます。

If you don't want to replace the contents of the range, use the Collapse method before using this method.

あなたがmyDoc.Contentを折りたたむことができないので、あなたは終了後のものをペーストする方法を考え出すことができない場合、私は推測するカスタム範囲オブジェクト

Dim pasteRange as Word.Range 
'... 
Set pasteRange = myDoc.Content 
pasteRange.Collapse wdCollapseEnd 
pasteRange.Paste 
関連する問題