ExcelHome技术论坛

 找回密码
 免费注册

QQ登录

只需一步,快速开始

快捷登录

搜索
EH技术汇-专业的职场技能充电站 妙哉!函数段子手趣味讲函数 Excel服务器-会Excel,做管理系统 效率神器,一键搞定繁琐工作
HR薪酬管理数字化实战 Excel 2021函数公式学习大典 Excel数据透视表实战秘技 打造核心竞争力的职场宝典
让更多数据处理,一键完成 数据工作者的案头书 免费直播课集锦 ExcelHome出品 - VBA代码宝免费下载
用ChatGPT与VBA一键搞定Excel WPS表格从入门到精通 Excel VBA经典代码实践指南
查看: 1477|回复: 3

麻烦请帮我看一下这个WORD表格排版的宏

[复制链接]

TA的精华主题

TA的得分主题

发表于 2016-9-6 08:47 | 显示全部楼层 |阅读模式
我这有个表格处理的宏,也还算可以用,只是字体处理的不好,我最终是要表格里的汉字用五号宋体,而数字和字母用”Times New Roman“字体,麻烦帮我看一下要怎么修改。万分感谢!


Sub 表格处理()
    On Error Resume Next
    Dim t As Table, n As Long
    If Selection.Information(wdWithInTable) = True Then Selection.Tables(1).Select: n = 1
    For Each t In ActiveDocument.Tables
        If n = 1 Then Set t = Selection.Tables(1) Else t.Select
        With t
            With .Rows
                .WrapAroundText = False
                .Alignment = wdAlignRowLeft
                .HeightRule = wdRowHeightAtLeast
                .Height = CentimetersToPoints(0.65)
            End With
            With .Range
                With .Cells
                    .DistributeWidth
                    .VerticalAlignment = wdCellAlignVerticalCenter
                End With
                .Font.Size = 10.5
                With .ParagraphFormat
                    .Alignment = wdAlignParagraphCenter
                    .CharacterUnitFirstLineIndent = 0
                    .FirstLineIndent = CentimetersToPoints(0)
                    .Space1
                End With
            End With
            .Shading.BackgroundPatternColor = wdColorAutomatic
            .AutoFitBehavior (wdAutoFitContent)
            .AutoFitBehavior (wdAutoFitContent)
            .Select
            .AutoFitBehavior (wdAutoFitWindow)
            .AutoFitBehavior (wdAutoFitWindow)
            With .Rows(1).Range.Font
                .Name = "宋体"
                .Name = "Times New Roman"
            End With
                Options.DefaultBorderLineWidth = wdLineWidth150pt
    With Selection.Borders(wdBorderTop)
        .LineStyle = Options.DefaultBorderLineStyle
        .LineWidth = Options.DefaultBorderLineWidth
        .Color = Options.DefaultBorderColor
    End With
    With Selection.Borders(wdBorderLeft)
        .LineStyle = Options.DefaultBorderLineStyle
        .LineWidth = Options.DefaultBorderLineWidth
        .Color = Options.DefaultBorderColor
    End With
    With Selection.Borders(wdBorderBottom)
        .LineStyle = Options.DefaultBorderLineStyle
        .LineWidth = Options.DefaultBorderLineWidth
        .Color = Options.DefaultBorderColor
    End With
    With Selection.Borders(wdBorderRight)
        .LineStyle = Options.DefaultBorderLineStyle
        .LineWidth = Options.DefaultBorderLineWidth
        .Color = Options.DefaultBorderColor
        End With
        End With
        If n = 1 Then Exit For
    Next
End Sub                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                 

TA的精华主题

TA的得分主题

发表于 2016-9-6 22:09 | 显示全部楼层
楼主,你这个代码是我的旧版原作,我现在附上新版本《表格处理》宏,请试试:
  1. Sub 表格处理()
  2. '功能:光标在表格中处理当前表格;否则处理所有表格!
  3.     Dim t As Table, i As Long
  4.     If Selection.Information(wdWithInTable) = True Then i = 1
  5.     For Each t In ActiveDocument.Tables
  6.         If i = 1 Then Set t = Selection.Tables(1)
  7.         With t
  8.             With .Rows
  9.                 .WrapAroundText = False '取消文字环绕
  10.                 .Alignment = wdAlignRowLeft '左对齐
  11.                 .LeftIndent = CentimetersToPoints(0) '左缩进 0 厘米
  12.                 .HeightRule = wdRowHeightAtLeast '表格行高(最小值)
  13.                 .Height = CentimetersToPoints(0.7) '表格行高(0.7 厘米)
  14.             End With
  15.             With .Range
  16.                 With .Font '字体格式
  17.                     .Name = "宋体"
  18.                     .Name = "Times New Roman"
  19.                     .Color = wdColorPink '粉红--------------------此行代码可以屏蔽!!!
  20.                     .Size = 10.5
  21.                     .Kerning = 0
  22.                     .DisableCharacterSpaceGrid = True
  23.                 End With
  24.                 With .ParagraphFormat '段落格式
  25.                     .CharacterUnitFirstLineIndent = 0 '取消首行缩进
  26.                     .FirstLineIndent = CentimetersToPoints(0) '取消首行缩进
  27.                     .LineSpacingRule = wdLineSpaceSingle '单倍行距(.Space1)
  28.                     .Alignment = wdAlignParagraphCenter
  29.                     .AutoAdjustRightIndent = False
  30.                     .DisableLineHeightGrid = True
  31.                 End With
  32.                 .Cells.VerticalAlignment = wdCellAlignVerticalCenter '垂直居中
  33.             End With
  34.             If .LeftPadding <> CentimetersToPoints(0.19) Then .LeftPadding = CentimetersToPoints(0.19) '默认单元格边距(0.19厘米)
  35.             If .RightPadding <> CentimetersToPoints(0.19) Then .RightPadding = CentimetersToPoints(0.19) '默认单元格边距(0.19厘米)
  36.             .AutoFitBehavior (wdAutoFitContent) '根据内容调整表格
  37.             .AutoFitBehavior (wdAutoFitContent) '根据内容调整表格
  38.             .Select
  39.             .AutoFitBehavior (wdAutoFitWindow) '根据窗口调整表格
  40.             .AutoFitBehavior (wdAutoFitWindow) '根据窗口调整表格
  41.             With .Rows(1).Range.Font '表头加粗黑体
  42.                 .Name = "黑体"
  43.                 .Name = "Times New Roman"
  44.                 .Bold = True
  45.             End With
  46.         End With
  47.         If i = 1 Then Exit For
  48.     Next
  49. End Sub
复制代码

TA的精华主题

TA的得分主题

发表于 2016-9-7 09:13 | 显示全部楼层
本帖最后由 菜菜行者 于 2016-9-7 09:15 编辑
413191246se 发表于 2016-9-6 22:09
楼主,你这个代码是我的旧版原作,我现在附上新版本《表格处理》宏,请试试:


当表头不是一行,是某列中多行合并,则出错,希望可以改错!


麻烦顺便帮看一下面这贴
http://club.excelhome.net/thread-1299420-1-1.html

谢谢

TA的精华主题

TA的得分主题

发表于 2016-9-7 09:27 | 显示全部楼层
现在表格处理,一直是针对规则表格,合并/拆分表格暂无法处理。
您需要登录后才可以回帖 登录 | 免费注册

本版积分规则

手机版|关于我们|联系我们|ExcelHome

GMT+8, 2025-1-13 19:38 , Processed in 0.019084 second(s), 8 queries , Gzip On, MemCache On.

Powered by Discuz! X3.4

© 1999-2023 Wooffice Inc.

沪公网安备 31011702000001号 沪ICP备11019229号-2

本论坛言论纯属发表者个人意见,任何违反国家相关法律的言论,本站将协助国家相关部门追究发言者责任!     本站特聘法律顾问:李志群律师

快速回复 返回顶部 返回列表