我正在尝试将表格从 excel 复制并粘贴到 word,但由于表格比工作表大,因此超出了页面范围。
我发现.AutoFitBehavior (wdAutoFitWindow)
对此有所帮助,但它会根据单元格中的信息分配列宽。因此,有些列非常细,反之亦然。我希望它们均匀分布,只有行大小不同。
据我所知.Tables(3).Columns.DistributeWidth
应该有助于均匀分布。
但是我无法将这两条线结合起来。根据代码变体,我尝试了其中任何一个工作,但从未同时尝试过。
我当前的相关代码部分:
tbl.copy
Set objDoc = objWord.Documents.Add(Template:="whatever", NewTemplate:=False, DocumentType:=0)
With objDoc
.Range.Bookmarks("lentele").Range.PasteExcelTable _
LinkedToExcel:=False, _
WordFormatting:=False, _
RTF:=True
End With
Set WordTable = objDoc.Tables(3)
WordTable.AutoFitBehavior (wdAutoFitWindow)
With objDoc
.Tables(3).Columns.DistributeWidth
End With
附加问题:如果插入表格中的所有文本都减小到字体大小 8,那就太好了,但是我收到错误,然后我输入了这一行objDoc.Tables(3).Font.Size = 8
如果您事先将格式适当(无自动宽度)的表格插入到 Word 模板中,仅包含表格的第一行(例如标题行,甚至是空行),则可以使用 PasteAppendTable 方法,该方法将强制追加的表格采用相同的列宽。如果您需要为此使用虚拟行,则可以在之后将其删除。
尽管如此,在保留您当前方法的同时:
Set objDoc = objWord.Documents.Add(Template:="whatever", NewTemplate:=False, DocumentType:=0)
tbl.Copy
With objDoc.Range.Bookmarks("lentele").Range
.PasteExcelTable _
LinkedToExcel:=False, _
WordFormatting:=False, _
RTF:=True
.End = .End + 1
With .Tables(1)
.Range.Font.Size = 8
.AutoFitBehavior (wdAutoFitWindow)
.AllowAutoFit = False
.Columns.DistributeWidth
End With
End With
至于错误 - objDoc.Tables(3)。范围.字体.大小 = 8