Office中国论坛/Access中国论坛

标题: 求助大神!用word vba 自动改变表格高度和宽度。 [打印本页]

作者: 三三008    时间: 2018-3-21 05:34
标题: 求助大神!用word vba 自动改变表格高度和宽度。
制作公司电话表,由于独立表格较多,每个表格的行高,宽度都不一样,为能统一每个表格,想用word vba程序编辑一个可以 自动改变表格高度和宽度的宏。具体数据见附件。
作者: 三三008    时间: 2018-3-21 07:21
另外,如何指定当前表格自己改变,而不是文件中所有表格。
作者: tmtony    时间: 2018-3-21 08:01
用Word录制宏可实现不?
作者: 三三008    时间: 2018-3-21 09:08
tmtony 发表于 2018-3-21 08:01
用Word录制宏可实现不?

就是因为录制不了,之前试过。
作者: 三三008    时间: 2018-3-22 02:31
tmtony 发表于 2018-3-21 08:01
用Word录制宏可实现不?


Sub 设置每列宽度()

If MsgBox("设置每列宽度?", vbYesNo + vbQuestion) = vbYes Then
For i = 1 To ActiveDocument.Tables.Count
' MsgBox (ActiveDocument.Tables(i).Cell(1, 1).Range.Text)
ActiveDocument.Tables(i).Columns(1).PreferredWidth = 35
ActiveDocument.Tables(i).Columns(2).PreferredWidth = 11
ActiveDocument.Tables(i).Columns(3).PreferredWidth = 11
ActiveDocument.Tables(i).Columns(4).PreferredWidth = 13
ActiveDocument.Tables(i).Columns(5).PreferredWidth = 13
ActiveDocument.Tables(i).Columns(6).PreferredWidth = 17
Next
MsgBox ("完成")
Else
MsgBox ("任务取消")
End If
End Sub
作者: 三三008    时间: 2018-3-22 10:32
本帖最后由 三三008 于 2018-3-22 10:34 编辑

能不能帮我把这个VBA改成指定行的列设置,而不是每行每列?

Sub 设置每列宽度()

If MsgBox("设置每列宽度?", vbYesNo + vbQuestion) = vbYes Then
For i = 1 To ActiveDocument.Tables.Count
' MsgBox (ActiveDocument.Tables(i).Cell(1, 1).Range.Text)
ActiveDocument.Tables(i).Columns(1).PreferredWidth = 35
ActiveDocument.Tables(i).Columns(2).PreferredWidth = 11
ActiveDocument.Tables(i).Columns(3).PreferredWidth = 11
ActiveDocument.Tables(i).Columns(4).PreferredWidth = 13
ActiveDocument.Tables(i).Columns(5).PreferredWidth = 13
ActiveDocument.Tables(i).Columns(6).PreferredWidth = 17
Next
MsgBox ("完成")
Else
MsgBox ("任务取消")
End If
End Sub




欢迎光临 Office中国论坛/Access中国论坛 (http://www.office-cn.net/) Powered by Discuz! X3.3