ExcelHome技术论坛

 找回密码
 免费注册

QQ登录

只需一步,快速开始

快捷登录

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

[求助] word批量删除表格空白行

[复制链接]

TA的精华主题

TA的得分主题

发表于 2023-4-4 19:58 | 显示全部楼层 |阅读模式
image.jpg

如图所示,运用word的引用功能批量生成测试报告,但是出现个问题:不同的样品测试报告的项目不一样就导致表格会用空白,请求各位大神怎么用B=VBA批量删除同文件夹下word文件的空白行,非常感谢(个人用WPS软件,最好能兼容)。

模板文件(1).zip

54.49 KB, 下载次数: 6

TA的精华主题

TA的得分主题

发表于 2023-4-4 22:44 | 显示全部楼层
image.png

TA的精华主题

TA的得分主题

 楼主| 发表于 2023-4-5 22:28 | 显示全部楼层
[广告] VBA代码宝 - VBA编程加强工具 · VBA代码随查随用  · 内置多项VBA编程加强工具       ★ 免费下载 ★      ★使用手册

[img]感谢大神在百忙中解答,代码试过能用,但是删除只能对当前文件的空白表格。相同文件夹下还有一百多份文件没动静。然后我修改大神的代码做个文件循环删除,运行出现附图报错,能帮忙看下哪里不对吗?感谢感谢感谢
[/img][img][/img]

TA的精华主题

TA的得分主题

 楼主| 发表于 2023-4-5 22:28 | 显示全部楼层

Sub DeleteEmptyRowsInTables()
Dim tbl As Table
Dim i As Integer, ff, MyPath, k
MyPath = ActiveDocument.Path & "\"
ff = Dir(MyPath & "*.docx*")
   k = 2
    Do While ff <> ""
For Each tbl In ActiveDocument.Tables
i = i + 1
'Check if table is not the first table
If i > 1 Then
  'Loop through each row in table
Dim row As row
For Each row In tbl.Rows
'Check if second to fourth column is empty
If Len(Trim(row.Cells(2).Range.Text)) = 2 _
And Len(Trim(row.Cells(3).Range.Text)) = 2 _
And Len(Trim(row.Cells(4).Range.Text)) = 2 Then
'Delete row if all columns are empty
row.Delete
End If
Next row
End If
Next tbl
k = k + 1
Loop
MsgBox "删除空白表格完成!"
End Sub

TA的精华主题

TA的得分主题

 楼主| 发表于 2023-4-5 22:29 | 显示全部楼层
[广告] VBA代码宝 - VBA编程加强工具 · VBA代码随查随用  · 内置多项VBA编程加强工具       ★ 免费下载 ★      ★使用手册

我自己修改运行异常的代码如下:

Sub DeleteEmptyRowsInTables()
Dim tbl As Table
Dim i As Integer, ff, MyPath, k
MyPath = ActiveDocument.Path & "\"
ff = Dir(MyPath & "*.docx*")
   k = 2
    Do While ff <> ""
For Each tbl In ActiveDocument.Tables
i = i + 1
'Check if table is not the first table
If i > 1 Then
  'Loop through each row in table
Dim row As row
For Each row In tbl.Rows
'Check if second to fourth column is empty
If Len(Trim(row.Cells(2).Range.Text)) = 2 _
And Len(Trim(row.Cells(3).Range.Text)) = 2 _
And Len(Trim(row.Cells(4).Range.Text)) = 2 Then
'Delete row if all columns are empty
row.Delete
End If
Next row
End If
Next tbl
k = k + 1
Loop
MsgBox "删除空白表格完成!"
End Sub

TA的精华主题

TA的得分主题

发表于 2023-4-6 12:50 | 显示全部楼层
[广告] VBA代码宝 - VBA编程加强工具 · VBA代码随查随用  · 内置多项VBA编程加强工具       ★ 免费下载 ★      ★使用手册

老师您好!
请你帮忙:下面是我录制的宏的内容,单独运行没有问题。
    Sheets("成绩查询").Select
    Range("AA5:AA69").Select
    Selection.Copy '复制文本
    Range("Z5").Select
    Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
        :=F
alse, Transpose:=False '粘贴数值
    Range("Z5").Select
可是我加一个工作表事件,为什么就运行不了?
Private Sub Worksheet_Change(ByVal Target As Range) '工作表触发事件
    Set Myrng = Range("A1")   
    Sheets("成绩查询").Select
    Range("AA5:AA69").Select'老是从这个地方开始卡住了
    Selection.Copy '复制文本
    Range("Z5").Select
    Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
        :=False, Transpose:=False '粘贴数值
    Range("Z5").Select
End Sub
    Range("Z5").Select
End Sub
您需要登录后才可以回帖 登录 | 免费注册

本版积分规则

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

GMT+8, 2024-11-17 20:25 , Processed in 0.034963 second(s), 10 queries , Gzip On, MemCache On.

Powered by Discuz! X3.4

© 1999-2023 Wooffice Inc.

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

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

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