ExcelHome技术论坛

 找回密码
 免费注册

QQ登录

只需一步,快速开始

快捷登录

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

代码如何改进

[复制链接]

TA的精华主题

TA的得分主题

发表于 2023-6-2 00:37 | 显示全部楼层
已经改成两段代码,不过需要一早通过审核后才能看到代码了

TA的精华主题

TA的得分主题

发表于 2023-6-2 07:44 | 显示全部楼层
本帖最后由 batmanbbs 于 2023-6-2 07:54 编辑

审核好慢呦
image.png

image.png

TA的精华主题

TA的得分主题

发表于 2023-6-2 07:55 | 显示全部楼层
  1. Sub 删除合计空表()

  2.     Dim FindRng As Range
  3.     Dim i%, rStart&, rEnd&, Text$

  4.     With ActiveDocument
  5.         i = 1
  6.         Do Until i > .Tables.Count
  7.             With .Tables(i)
  8.                 rStart = .Cell(.Rows.Count, 1).Range.Start
  9.                 rEnd = .Cell(.Rows.Count, .Columns.Count).Range.End
  10.                 Text = ActiveDocument.Range(rStart, rEnd)
  11.                 Text = Replace(Replace(Replace(Text, " ", ""), Chr(13), ""), Chr(7), "")
  12.                 If Text = "合计" Then
  13.                     Set FindRng = ActiveDocument.Range(0, .Range.Start)
  14.                     With FindRng.Find
  15.                         .ClearFormatting
  16.                         .ParagraphFormat.OutlineLevel = wdOutlineLevel3
  17.                         .Format = True
  18.                         .Wrap = wdFindStop
  19.                         .Forward = False
  20.                         rStart = IIf(.Execute, FindRng.Start, 0)
  21.                     End With
  22.                     Set FindRng = ActiveDocument.Range(.Range.End, ActiveDocument.Content.End)
  23.                     With FindRng.Find
  24.                         .ClearFormatting
  25.                         .ParagraphFormat.OutlineLevel = wdOutlineLevel3
  26.                         .Format = True
  27.                         .Wrap = wdFindStop
  28.                         .Forward = True
  29.                         rEnd = IIf(.Execute, FindRng.Start, ActiveDocument.Content.End)
  30.                     End With
  31.                     'Debug.Print ActiveDocument.Range(rStart, rEnd)
  32.                     ActiveDocument.Range(rStart, rEnd).Delete
  33.                 Else
  34.                     i = i + 1
  35.                 End If
  36.             End With
  37.         Loop
  38.     End With

  39.     Set FindRng = Nothing
  40. End Sub
复制代码

  1. Sub 删除表格空行()
  2. '
  3. '删除表格中除了第一列之外都是空白单元格的行
  4. '
  5.     Dim i%, iRow%, iCol%, rStart&, rEnd&, Text$

  6.     If Selection.Tables.Count = 0 Then
  7.         MsgBox "没有指定表格"
  8.     Else
  9.         With Selection.Tables(1)
  10.             iRow = .Rows.Count
  11.             iCol = .Columns.Count
  12.             For i = iRow To 2 Step -1        '跳过表头第一行
  13.                 rStart = .Cell(i, 2).Range.Start
  14.                 rEnd = .Cell(i, iCol).Range.End
  15.                 Text = ActiveDocument.Range(rStart, rEnd)
  16.                 Text = Trim(Replace(Replace(Text, Chr(13), ""), Chr(7), ""))
  17.                 If Len(Text) = 0 Then
  18.                     .Cell(i, 2).Select
  19.                     With Selection
  20.                         .SelectRow: .Rows.Delete
  21.                     End With
  22.                 End If
  23.             Next i
  24.         End With
  25.     End If

  26. End Sub
复制代码

评分

1

查看全部评分

TA的精华主题

TA的得分主题

 楼主| 发表于 2023-6-2 08:56 | 显示全部楼层

真的非常感谢,这对我帮助很大,之后一定充分学习,谨慎提问
您需要登录后才可以回帖 登录 | 免费注册

本版积分规则

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

GMT+8, 2024-12-27 03:50 , Processed in 0.027671 second(s), 8 queries , Gzip On, MemCache On.

Powered by Discuz! X3.4

© 1999-2023 Wooffice Inc.

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

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

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