excel - 将表格从 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).Range.Font.Size = 8
推荐阅读
- c# - vb.net 中的 ONVIF GetSnapshotUri
- database - db.SaveChanges() 需要很长时间才能将数据保存到数据库中
- linux - 将 Greenplum 作为服务启动的问题
- python - 如何创建一个包含小时和分钟的新列?
- kubernetes - prometheus pod 重启次数不是整数
- django - 如何在没有互联网的情况下为 Django 开发设置虚拟环境?
- python - Selenium page_source 被截断
- python - 如何在 python 中为 Windows 10 上的 TensorFlow 设置带有 CUDA 的 GPU?
- oracle - 来自数组的 Oracle PL/SQL 批量更新
- c++ - 打开包含变量名的文件