近期遇到一個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建設。