[文件]Word VBA cells.wrapword的问题

楼主: liquidbox (樹枝擺擺)   2018-12-04 19:55:21
软件:Word
版本:2016
我在写Word VBA遇到一个问题,但百思不得其解
我有很多表格需要设定成共同格式,其中整张表格的栏宽必须设为定值,
若字段中文字过程,则以自动换列处理,
换言之,表格栏宽必须优先统一,若储存格中文字过长导致行高不一致则没关系
然而,Word VBA的表格宽度设定好像是以储存格中文字为优先,
也就是,即便我表格固定宽度设为定值,
一旦Word发现储存格文字过长时,Word仍会以储存格栏宽为优先,而后才调整表格宽度
以下我设定的是,将每个储存格的自动换列设为真,再调整表格为一固定宽度
结果很失望,所有我刻意输入一长串文字的储存格,都仍持一列的状态,
并未在储存格内自动换列成第二列、第三列
即使我点表格内容查看储存格设定,仍可看到自动换列已勾选,却没发挥预期作用
唯一办法是,我先手动将每个表格的栏宽拉到尽可能最小,让
自动换列先发生后再执行宏,把表格宽度放大到我想要的定值
但这样就失去用宏的意义,而且不可能那一堆表格都这么搞
我希望做到的是,即使表格中某些储存格文字很长,
但Word仍能做到“把宽的表格变窄”、“把窄的表格变宽”,而不是只能把窄的变宽而已
我用wordwrap doesn't work去网络上查,却发现好像没人跟我有一样的需求
想请问,是否有办法可以做到?或者我根本不该用cells.wordwrap这个属性?
谢谢,以下是我写的码
Dim tble As Table
Set tble = ActiveDocument.Tables(1)
For Each Cell In tble.Range.Cells
Cell.WordWrap = True
Next
tble.PreferredWidth = CentimetersToPoints(5)
作者: soyoso (我是耀宗)   2018-12-04 23:35:00
表格选项内选项,自动调整成内容大小(勾选取消)于循环上方以 tble.allowautofit=false 试试
楼主: liquidbox (樹枝擺擺)   2018-12-05 11:15:00
成功了,谢谢协助

Links booklink

Contact Us: admin [ a t ] ucptt.com