近期遇到一个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建设。