Microsoft的在word中选择文档中的所有表格进行字体和格式的调整时的解决方案

找到宏

创建 并粘贴

使用

bas 复制代码
Sub 全选所有表格()
Dim t As Table
an = MsgBox("即将选择选区内所有表格,若无选区,则选择全文表格。", vbYesNo, "reboot提醒您!")
If an - 6 Then Exit Sub
Set rg = IIf(Selection.Type = wdSelectionIP, ActiveDocument.Content, Selection.Range)
ActiveDocument.DeleteAllEditableRanges wdEditorEveryone
For Each t In rg.Tables
    t.Range.Editors.Add wdEditorEveryone
Next
ActiveDocument.SelectAllEditableRanges wdEditorEveryone
ActiveDocument.DeleteAllEditableRanges wdEditorEveryone
End Sub

Sub 全选所有表格首行()
Dim t As Table
Dim firstRow As Row
an = MsgBox("即将选择选区内所有表格的首行,若无选区,则选择全文表格的首行。", vbYesNo, "reboot提醒您!")
If an - 6 Then Exit Sub
Set rg = IIf(Selection.Type = wdSelectionIP, ActiveDocument.Content, Selection.Range)
ActiveDocument.DeleteAllEditableRanges wdEditorEveryone
For Each t In rg.Tables
    If t.Rows.Count >= 1 Then
        Set firstRow = t.Rows(1)
        firstRow.Range.Editors.Add wdEditorEveryone
    End If
Next
ActiveDocument.SelectAllEditableRanges wdEditorEveryone
ActiveDocument.DeleteAllEditableRanges wdEditorEveryone
End Sub

Sub 全选所有表格_调整格式()
    Dim t As Table
    Dim an As Integer
    Dim rg As Range
    Dim tableCount As Integer
    Dim cell As cell
    
    ' 确认提示
    an = MsgBox("即将格式化选区内所有表格,若无选区,则格式化全文表格。" & vbCrLf & _
                "操作包括:" & vbCrLf & _
                "1. 根据窗口调整宽度" & vbCrLf & _
                "2. 平均分布各行" & vbCrLf & _
                "3. 设置行高为1厘米" & vbCrLf & _
                "4. 设置单元格文本左对齐", vbYesNo, "reboot提醒您!")
    
    If an <> vbYes Then Exit Sub
    
    ' 确定操作范围
    Set rg = IIf(Selection.Type = wdSelectionIP, ActiveDocument.Content, Selection.Range)
    tableCount = 0
    
    ' 直接遍历表格并应用格式
    Application.ScreenUpdating = False
    For Each t In rg.Tables
        ' 应用表格级格式
        t.AutoFitBehavior wdAutoFitWindow
        t.Rows.DistributeHeight
        t.Rows.Height = CentimetersToPoints(1)
        t.Rows.HeightRule = wdRowHeightExactly
        
        ' 遍历单元格设置对齐方式
        For Each cell In t.Range.Cells
            cell.VerticalAlignment = wdCellAlignVerticalCenter ' 垂直居中
            cell.Range.ParagraphFormat.Alignment = wdAlignParagraphLeft ' 水平左对齐
        Next cell
        
        tableCount = tableCount + 1
    Next t
    Application.ScreenUpdating = True
    
    ' 提示结果
    If tableCount > 0 Then
        MsgBox "已成功格式化 " & tableCount & " 个表格!", vbInformation
    Else
        MsgBox "未找到可格式化的表格!", vbExclamation
    End If
End Sub
相关推荐
椒颜皮皮虾྅5 小时前
【DeploySharp 】基于DeploySharp 的深度学习模型部署测试平台:安装和使用流程
人工智能·深度学习·开源·c#·openvino
君之嘞8 小时前
【操作系统基础】认识操作系统:系统调用
linux·运维·microsoft
kalvin_y_liu12 小时前
【MES架构师与C#高级工程师(设备控制方向)两大职业路径的技术】
开发语言·职场和发展·c#·mes
椒颜皮皮虾13 小时前
基于DeploySharp 的深度学习模型部署测试平台:支持YOLO全系列模型
c#
许泽宇的技术分享14 小时前
微软Agent框架深度解析:重新定义AI应用开发的革命性架构
microsoft·agent
唤醒手腕1 天前
唤醒手腕 2025 年最新 Remix ERC 详细教程(更新中)
microsoft·区块链
驱动探索者1 天前
find 命令使用介绍
java·linux·运维·服务器·前端·学习·microsoft
李宥小哥1 天前
C#基础10-结构体和枚举
java·开发语言·c#
揭老师高效办公2 天前
Word和WPS文字如何从特定的页开始编号(页码)?
word·wps
secondyoung2 天前
Markdown转换为Word:Pandoc模板使用指南
开发语言·经验分享·笔记·c#·编辑器·word·markdown