作者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/m.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