将表格从excel粘贴到Word,然后粘贴到适合窗口并均匀分布列



我正在尝试将表格从 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

最新更新