Word VBA 单元格处理

近期遇到一个office操作上十分棘手的问题:要实现对word中,几千个相同格式的表格的某一个特定单元格的格式设置

例如:对于这样的同格式的word中的表格,批量的将其第一行第二列单元格格式设置为居中并且加上灰色底纹

通过OfficeWord录制宏的方法,难以解决选中问题,遂上手VBA编程,编写如下代码:

 1 Sub 宏5()
 2 '
 3 ' 宏5 宏
 4 '
 5 '
 6     For i = 1 To 500
 7     ' 从第1个表开始,到第500个表结束,500可以改成任意数字
 8         Set myCell = ActiveDocument.Tables(i).Cell(Row:=2, Column:=1)
 9         ' 对每个表选中第1行第1列,如Row:=3,Column:=2则是定位第3行第2列,这俩数可以任意改
10         myCell.Shading.Texture = wdTexture20Percent
11         ' 突出显示的命令
12         myCell.Range.ParagraphFormat.Alignment = wdCellAlignVerticalCenter
13         ' 修改格式的命令
14     Next i
15 End Sub


定位cell十分简单,但是修改cell的水平居中的属性费了一番周折,Word官方文档中的cell属性里竟然只有VerticalAlignment而没有horizontalAlignment,对于垂直居中只需要
 Cell.VerticalAlignment = wdAlignVerticalTop ,而水平居中则需要进一步查找文档,通过 myCell.Range.ParagraphFormat.Alignment = wdCellAlignVerticalCenter 成功设置。
文档地址如下:
https://docs.microsoft.com/zh-cn/office/vba/api/word.cell.verticalalignment

 

 

 目前已跟微软office团队反反映相关问题,希望其进一步完善VBA建设。

 

posted @ 2020-02-04 16:12  Wind·Chaser  阅读(2329)  评论(0编辑  收藏  举报