2016-08-24 197 views
1

該宏用Excel編寫。我已經將表格複製到excel的第一頁,然後我想將表格插入第2頁的word.But從下面設置「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頁添加新表格。你能否建議 –