目的:对指定文件夹中的多个WORD文件,快速统一操作。
参考:VBA操作WORD(三):设置页面_vba纸张方向纵向orientation-CSDN博客
Sub ModifyFirstTableInAllDocuments()
Dim folderPath As String
Dim file As String
Dim doc As Document
Dim tbl As Table
Dim i As Integer
' 指定文件夹路径
folderPath = "C:\Users\sjplj\Desktop\111\"
' 循环遍历文件夹中的所有Word文档
file = Dir(folderPath & "*.doc")
Do While file <> ""
' 打开文档
Set doc = Documents.Open(folderPath & file)
With doc.PageSetup
.LineNumbering.Active = False
.Orientation = wdOrientPortrait '页面方向为纵向
.TopMargin = CentimetersToPoints(2) '上边距
.BottomMargin = CentimetersToPoints(2) '下边距
.LeftMargin = CentimetersToPoints(2) '左边距
.RightMargin = CentimetersToPoints(2) '右边距
End With
' 获取文档中的第一个表格
Set tbl = doc.Tables(1)
' 在表格指定位置添加照片框
' 请将 "C:\Users\sjplj\Desktop\111\image.jpg" 替换为实际的图片路径
tbl.Cell(1, 1).Range.InlineShapes.AddPicture folderPath & "image.jpg"
' 将表的cells(1,3)单元格宽度设置为3.5cm
'tbl.Cell(1, 3).Width = CentimetersToPoints(3.5)
tb1.Columns(1).SetWidth ColumnWidth:=70.9, RulerStyle:= _
wdAdjustFirstColumn
' 调整表格的方式为wdAdjustFirstColumn
tbl.AutoFitBehavior (wdAutoFitFirstColumn)
' 将表的前3行的排列设为左右居中并且上下居中
For i = 1 To 3
With tbl.Rows(i).Range.ParagraphFormat
.Alignment = wdAlignParagraphCenter
.SpaceBefore = 0
.SpaceAfter = 0
End With
Next i
' 将表的第6列的1至3行拆分成1行2列
For i = 1 To 3
tbl.Cell(i, 6).Split NumRows:=1, NumColumns:=2
Next i
' 将表的第7列的1至3行合并
tbl.Cell(1, 7).Merge MergeTo:=tbl.Cell(3, 7)
' 保存并关闭文档
doc.Save
doc.Close
file = Dir
Loop
End Sub
将文件中的表宽度改为与页面尺寸一致
表1的操作:
表1的前3行,行之间平均分布高度,设置为5cm;
表1的第1列设置为自适应宽度;其他列宽度与第1列相同;
表1的最后一列插入一个空列;