2016-08-24 21 views
1

マクロはExcelで記述されています。私はテーブルを最初のページをExcelにコピーしてから、word.Butの2ページ目にテーブルを挿入したいのですが、セット "MyRange"が空に戻って1行のテーブルが作成されていません。私は下に使用している場合Excelからテーブルをコピーした後にVba Wordのテーブルを追加

Set objWord = CreateObject("Word.Application") 
    Set objDoc = objWord.Documents.Open(str_path_folder & "\" & AdID & ".dotm") 
    objWord.Visible = True 
    objDoc.Activate 
    AppActivate AdID & ".dotm" 
    Sheets("Meta").Select 
    Range("B1:E" & LastRow).Select 
    Selection.Copy 
    objWord.Selection.PasteExcelTable False, False, False 
    objDoc.Tables(1).AutoFitBehavior wdAutoFitContent 
    objWord.Selection.InsertBreak.Type = wdPageBreak 
    Set MyRange = ActiveDocument.Content 
    MyRange.collapse Direction:=wdCollapseEnd 
    ActiveDocument.Tables.Add Range:=MyRange, NumRows:=1, _ 
    NumColumns:=1, DefaultTableBehavior:=wdWord9TableBehavior,  AutoFitBehavior:=wdAutoFitFixed 

はまた、1ページ内に既にコピーされた表を交換します

objDoc.Tables.Add Range:=objDoc.Range, NumRows:=3, NumColumns:=2, DefaultTableBehavior:=wdWord9TableBehavior, AutoFitBehavior:=wdAutoFitFixed 

答えて

0

ます場合は、文書の末尾を取得するもう一つの方法は、objDoc.Range(objDoc.Range.End - 1)

objDoc.Range.PasteExcelTable 0, 0, 0 

objDoc.Range(objDoc.Range.End - 1).InsertBreak 

objDoc.Tables.Add objDoc.Range(objDoc.Range.End - 1), 2, 2 

ですWordでマクロを記録すると、このようなものが得られます

Selection.PasteExcelTable False, False, True 
Selection.InsertBreak Type:=wdPageBreak 
ActiveDocument.Tables.Add Range:=Selection.Range, NumRows:=1, NumColumns:=1, _ 
    DefaultTableBehavior:=wdWord9TableBehavior, AutoFitBehavior:=wdAutoFitFixed 
+0

ありがとうございますが、まだ2ページ目に新しいテーブルが追加されていません。 –

関連する問題