作者liquidbox (树枝摆摆)
看板Office
标题[文件]Word VBA cells.wrapword的问题
时间Tue Dec 4 19:55:21 2018
软体: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)
--
※ 发信站: 批踢踢实业坊(ptt.cc), 来自: 61.230.109.195
※ 文章网址: https://webptt.com/cn.aspx?n=bbs/Office/M.1543924523.A.76D.html
1F:→ soyoso: 表格选项内选项,自动调整成内容大小(勾选取消) 12/04 23:35
2F:→ soyoso: 於回圈上方以 tble.allowautofit=false 试试 12/04 23:36
3F:→ liquidbox: 成功了,谢谢协 12/05 11:15
4F:→ liquidbox: 助 12/05 11:16