[英]Adding a page in MS Word document using VBA adds extra pages
我有带有宏的 MS word 文件,第一页中有表格。 (表是使用标签创建的)。
但是当表格中的单元格不够用时,我想添加另一个页面,其中包含类似的表格。
所以我试图编码如下
ActiveDocument.Sections(1).Range.Copy
ActiveDocument.Sections.Add.Range.Paste
但是这段代码有时会改变第一页的格式。 并创建第三个空白页,第二页的内容为第一页。
任何正文都可以让我知道如何仅添加与第一页内容相同的页面,而不更改第一页。
谢谢
表格会自动进入下一页,您也可以指定重复的标题行。
但假设你需要一张新桌子......
您的原始问题需要一些说明(请参阅下面的一些要点),但请查看以下代码是否会破坏您的格式:
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
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.