如何用vba设置word文档中的表格当插入图片时,表格不变形?

在word文档中经常需要使用到表格。

在word表格中有时候需要插入图片。

当在word表格中插入图片后,word的表格经常会变形,本文主要就是介绍如何通过设置来实现插入图片后word表格不变形:

一、手动设置

如下所示为一个word文档中的表格:

当在这个表格中插入一张图片后,表格变成了如下图所示:

表格完全变形了。

在百度上有很多解决方案推荐用打开表格属性,取消“自动调整尺寸以适应内容”选项来避免这个问题,如下所示:

当按照上述方法设置后,再次插入图片,如下图所示:

对比第一和第二张图,我们会发现,虽然这次的没有比第二张图变形的那么厉害,但是跟第一张图相比,还是把第一行的单元格的行高撑高了。

如果我们想要的效果是插入图片后,原表格的所有单元格的尺寸都不变化,可以将要插入图片的表格所在的行和列的行高和列宽都设定为固定值,如下所示:

然后再插入图片,就可以实现表格的所有单元格的尺寸都不变化了,如下图所示:

二、vba设置

上述介绍了如何通过设置表格的选项实现插入word表格中的图片不变形,接下来介绍如何通过vba代码设置使得插入word表格中的图片不变形。

其中vba中Table对象的AllowAutoFit属性对应的“自动调整尺寸以适应内容”,而固定行高是通过设置Row对象的HeightRule为固定值来实现。

代码如下:

Sub QQ1722187970()
    Dim oDoc As Document
    Set oDoc = Word.ActiveDocument
    Dim oTable As Table
    For Each oTable In oDoc.Tables
        With oTable
            '不允许自动调整单元格尺寸
            .AllowAutoFit = False
            Dim oRow As Row
            For Each oRow In .Rows
                oRow.HeightRule = wdRowHeightExactly
                '设置每行为5厘米高
                oRow.Height = Word.Application.CentimetersToPoints(5)
            Next
        End With
    Next
End Sub
       

发表评论