表將自動流入下一個頁面,你可以指定重複標題行也。
不過,假設你需要一個新的表...
你原來的問題需要作一些澄清(見下面的一些點),但看看下面的代碼敗壞你的格式:
Sub copytable1()
Dim rtarget As Word.Range
With ActiveDocument
Set rtarget = .Range(.Content.End - 1, .Content.End - 1)
rtarget.InsertBreak Type:=Word.WdBreakType.wdPageBreak
Set rtarget = .Range(.Content.End - 1, .Content.End - 1)
rtarget.FormattedText = .Tables(1).Range.FormattedText
Set rtarget = Nothing
End With
End Sub
它假定這
- 你要複製的表是文檔
- 在第一個表,你只是想插入在文檔的末尾添加新頁面,然後插入表格的副本。如果您的文檔可能已經是多頁面的,那麼您將需要截然不同的代碼。
當創建可編輯的Word文檔,作爲「好習慣」,你可以使用一個段落樣式與「分頁符之前」屬性設置爲實現了突破,而不是硬分頁符,因爲我已經做了。
另外,
Sub copytable3()
Dim rtarget As Word.Range
With ActiveDocument
Set rtarget = .Range
rtarget.Collapse wdCollapseEnd
rtarget.InsertParagraphAfter
Set rtarget = .Range
rtarget.Collapse wdCollapseEnd
rtarget.ParagraphFormat.PageBreakBefore = True
Set rtarget = .Range
rtarget.Collapse wdCollapseEnd
rtarget.InsertParagraphAfter
Set rtarget = .Range
rtarget.Collapse wdCollapseEnd
rtarget.ParagraphFormat.PageBreakBefore = False
Set rtarget = .Range
rtarget.Collapse wdCollapseEnd
rtarget.Select
rtarget.FormattedText = .Tables(1).Range.FormattedText
Set rtarget = Nothing
End With
End Sub
你好bibadia, 感謝您的回覆, 你的假設是完全匹配我的要求。 但是,當我運行代碼,我下面讓行運行時錯誤「4198」 .... rtarget.InsertBreak類型:= Word.WdBreakType.wdPageBreak 我覺得它不能創建在以前的線路範圍對象。 我正在使用Excel 2013. 如果您對此有更多瞭解,請讓我知道。 謝謝 – compyutech
如果您是從Excel運行VBA,除非您(至少)用您擁有的Word對象的名稱對其進行限定,否則使用「ActiveDocument」將不起作用。當你CreateObject或GetObject。如果您已經這樣做了,那麼我建議您編輯原始帖子,向我們展示您目前使用的代碼。 – 2014-02-24 09:20:53
您好先生,對不起,提供錯誤的信息,我正在使用Office 2013.我正在運行從它自己的宏,而不是從Excel中...謝謝 – compyutech