Word VBA 读取 任意表格的高度和宽度

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Word VBA 读取 任意表格的高度和宽度相关的知识,希望对你有一定的参考价值。

有一个文档,里面有很多个不同大小、无规则的表格

我想要让每个宽度大于150毫米,都缩小到宽度150毫米,或者高度大于200毫米的表格,变成高度200毫米,小的表格不变

这样就需要读取每个表格的宽度、高度,然后进行判断

我看了一下,似乎ActiveDocument.Tables(i).PreferredWidth 只能设置表格宽度,不能读取表格宽度

高度更不知道怎么办

(它里面每一行每一列不一定相等,有些长有些短,而且有些是合并单元格的,所以也不能用 “第一列的宽度×列数” 来算出总列宽)

有没有办法实现这样的操作呢?

 操作步骤:

1、选中表格,单击鼠标右键,弹出快捷菜单,选择表格属性命令,如图所示;

2、弹出表格对话框,选择行选项卡,选中指定高度复选框,在输入框中输入所需要的高度值,如图所示;

3、选择列选项卡,选中指定宽度复选框,在输入框中输入所需要的高度值,如图所示;

参考技术A

Dim tb As Table

For Each tb In ThisDocument.Tables()

    For i = 1 To tb.Columns.Count

        tb.Cell(1, i).Range.Text = tb.Columns(i).Width / 28.35  'cm

        'MsgBox tb.Columns(i).Width / 28.35

    Next

    For j = 1 To tb.Rows.Count

          tb.Cell(j, 1).Range.Text = tb.Cell(j, 1).Range.Text & tb.Rows(j).Height / 28.35  '厘米

      'MsgBox tb.Rows(j).Height / 28.35 

    Next

Next

以上是读取每一行列的宽、高,但合并单元格之后,就可能会出现错误。

参考技术B 试试ActiveDocument.Tables(i).PreferredHeight本回答被提问者采纳

XLSReadWriteII 行宽,列高怎么设置

word中表格宽、高设置步骤:
1、打开Word2007文档窗口,在表格中选中需要设置高度的行或需要设置宽度的列;

2、在“表格工具”功能区中切换到“布局”选项卡,在“单元格大小”分组中调整“高度”数值或“宽度”数值,以设置表格行的高度或列的宽度。
参考技术A XLS.Sheets[0].Columns[2].Width :=120 //设置第三列宽度120

以上是关于Word VBA 读取 任意表格的高度和宽度的主要内容,如果未能解决你的问题,请参考以下文章

怎样使word表格的宽度高度固定不变

如何设置Word中表格的宽度

高分跪求 VBA word中实现循环搜索 并在WORD中找到列表 再根据已有数据自动填写进本行其它列

Word中如何固定表格的宽和高

用C#把word中的表格数据读取到xml文件

MFC单文档程序的菜单栏怎么修改高度和宽度?