ExcelHome技术论坛

 找回密码
 免费注册

QQ登录

只需一步,快速开始

快捷登录

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

[求助] 表格内容距离边距设置的vba

[复制链接]

TA的精华主题

TA的得分主题

发表于 2018-4-1 02:09 | 显示全部楼层
* 楼主,针对你提供的新附件,请试用下面的宏:(请备份后使用并核对!)
  1. Sub aaaa财会账表_循环遍历所有表格及单元格()
  2. '功能:光标在表格中处理当前表格;否则处理所有表格!
  3.     Dim t As Table, i As Long, c As Cell, r As Range, e&, j&, k&, x&, y&, z&
  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 .Range
  9.                 '表头上方标题颜色----此段代码可以删除/注释掉!
  10.                 With .Previous.Paragraphs(1).Range.Font
  11.                     .Size = 14
  12.                     .Bold = True
  13.                     .Color = wdColorGreen '绿色
  14.                 End With
  15.                 '表头上方标题颜色----此段代码可以删除/注释掉!
  16.                
  17.                 For Each c In .Cells
  18.                     Set r = c.Range
  19.                     With r
  20.                         If r Like "*[一-﨩]*" Then
  21.                             .Font.Color = wdColorPink '粉红
  22.                             .ParagraphFormat.Alignment = wdAlignParagraphLeft
  23.                             .ParagraphFormat.CharacterUnitLeftIndent = 0.5
  24.                                 If r Like "*减[::]*" Then
  25.                                     .Select
  26.                                     CommandBars.FindControl(ID:=122).Execute
  27.                                     CommandBars.FindControl(ID:=123).Execute
  28.                                     .InsertBefore Text:=Chr(-24159)
  29.                                     With .ParagraphFormat
  30.                                         .Alignment = wdAlignParagraphJustify
  31.                                         .CharacterUnitFirstLineIndent = 0
  32.                                         .FirstLineIndent = CentimetersToPoints(0)
  33.                                     End With
  34.                                 End If
  35.                         Else
  36.                             .Font.Color = wdColorBlue '蓝色
  37.                             .ParagraphFormat.Alignment = wdAlignParagraphRight
  38.                             .ParagraphFormat.CharacterUnitRightIndent = 0.5
  39.                         End If
  40.                     End With
  41.                 Next
  42.                 '判断表格是否规则
  43.                 x = .Information(wdEndOfRangeRowNumber)
  44.                 y = .Information(wdEndOfRangeColumnNumber)
  45.                 z = .Cells.Count
  46.             End With
  47.             If x <> 1 Then
  48.                 If z = x * y Then
  49.                     For k = 1 To y
  50.                         For j = 1 To x - 1
  51.                             If .Cell(j + 1, k).Width = .Cell(j, k).Width Then e = 1 Else e = 0
  52.                             If e = 0 Then Exit For
  53.                         Next j
  54.                         If e = 0 Then Exit For
  55.                     Next k
  56.                 Else
  57.                     e = 0
  58.                 End If
  59.             Else
  60.                 e = 1
  61.             End If
  62.             If e = 1 Then '规则表格
  63.                 '首行加粗
  64.                 With .Rows(1).Range
  65.                     With .Font
  66.                         .Name = "黑体"
  67.                         .Bold = True
  68.                         .Color = wdColorRed '红色
  69.                     End With
  70.                     With .ParagraphFormat
  71.                         .Alignment = wdAlignParagraphCenter
  72.                          .CharacterUnitLeftIndent = 0
  73.                         .LeftIndent = CentimetersToPoints(0)
  74.                     End With
  75.                     .HighlightColorIndex = wdYellow '突出显示/黄色
  76.                     '计提比例/居中
  77.                     .Select
  78.                     With Selection
  79.                         .Find.ClearFormatting
  80.                         .Find.Execute "计提比例*", , , 1, , , 1
  81.                         .SelectColumn
  82.                         .ParagraphFormat.Alignment = wdAlignParagraphCenter
  83.                         With .ParagraphFormat
  84.                             .Alignment = wdAlignParagraphCenter
  85.                             .CharacterUnitRightIndent = 0
  86.                             .RightIndent = CentimetersToPoints(0)
  87.                         End With
  88.                     End With
  89.                 End With
  90.                 '末行加粗
  91.                 With .Rows(.Rows.Count).Range
  92.                     With .Font
  93.                         .NameFarEast = "黑体"
  94.                         .NameAscii = "宋体"
  95.                         .Bold = True
  96.                         .Color = wdColorRed '红色
  97.                     End With
  98.                     With .Cells(1).Range
  99.                         With .ParagraphFormat
  100.                             .Alignment = wdAlignParagraphCenter
  101.                             .CharacterUnitLeftIndent = 0
  102.                             .LeftIndent = CentimetersToPoints(0)
  103.                         End With
  104.                     End With
  105.                     .HighlightColorIndex = wdYellow '突出显示/黄色
  106.                     '例外
  107.                     .Select
  108.                     For Each c In Selection.Cells
  109.                         If Asc(c.Range) = -24150 Then
  110.                             With c.Range.ParagraphFormat
  111.                                 .Alignment = wdAlignParagraphCenter
  112.                                 .CharacterUnitRightIndent = 0
  113.                                 .RightIndent = CentimetersToPoints(0)
  114.                             End With
  115.                         End If
  116.                     Next
  117.                 End With
  118.             Else '不规则表格
  119.                 For Each c In .Range.Cells
  120.                     Set r = c.Range
  121.                     If r Like "*项*目*" Or r Like "期末数*" Or r Like "年初数*" Or r Like "账面余额*" Or r Like "金额*" Or r Like "比例*" Or r Like "坏账准备*" Or r Like "*合*计*" Then
  122.                         With c.Range
  123.                             With .Font
  124.                                 .Name = "黑体"
  125.                                 .Bold = True
  126.                                 .Color = wdColorRed '红色
  127.                             End With
  128.                             With .ParagraphFormat
  129.                                 .Alignment = wdAlignParagraphCenter
  130.                                  .CharacterUnitLeftIndent = 0
  131.                                 .LeftIndent = CentimetersToPoints(0)
  132.                             End With
  133.                             .HighlightColorIndex = wdYellow '突出显示/黄色
  134.                         End With
  135.                     End If
  136.                 Next
  137.                 '查找合计
  138.                 For Each c In .Range.Cells
  139.                     If c.Range Like "*合*计*" Then
  140.                         c.Range.Select
  141.                         Exit For
  142.                     End If
  143.                 Next
  144.                 With Selection
  145.                     Do While .Next(4, 1).Information(12)
  146.                         .Next(4, 1).Select
  147.                         With .Font
  148.                             .Color = wdColorRed '红色
  149.                             .Bold = True
  150.                         End With
  151.                         .Range.HighlightColorIndex = wdYellow '突出显示/黄色
  152.                     Loop
  153.                 End With
  154.             End If
  155.         End With
  156.         If i = 1 Then Exit For
  157.     Next
  158.    
  159. '外框加粗----此功能不喜欢可以删除/注释掉!(比较费墨)
  160.     For Each t In ActiveDocument.Tables
  161.         For j = 1 To 4
  162.             t.Range.Borders(-j).LineWidth = 12
  163.         Next
  164.     Next
  165. '外框加粗----此功能不喜欢可以删除/注释掉!(比较费墨)

  166.     Selection.HomeKey unit:=wdStory
  167.     MsgBox "处理完毕!!!!!!!!!!!!" & vbCr & vbCr & _
  168.     "*** 如果想打印,只须<全选>,再点击<突出显示:无>即可!" & vbCr & _
  169.     "*** 如果想打印,只须<全选>,再点击<自动色>即可!" & vbCr & _
  170.     "*** 注释语句可以删除,或注释掉!", vbOKOnly + vbExclamation
  171. End Sub
复制代码
您需要登录后才可以回帖 登录 | 免费注册

本版积分规则

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

GMT+8, 2025-1-12 04:57 , Processed in 0.015017 second(s), 6 queries , Gzip On, MemCache On.

Powered by Discuz! X3.4

© 1999-2023 Wooffice Inc.

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

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

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