VBA之于WORD

2023-12-23 08:33:36

目的:对指定文件夹中的多个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的最后一列插入一个空列;

文章来源:https://blog.csdn.net/sjpljr/article/details/135164244
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。