ExcelHome技术论坛

 找回密码
 免费注册

QQ登录

只需一步,快速开始

快捷登录

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

[求助] 批量删除WORD表格中含关键字的一行

[复制链接]

TA的精华主题

TA的得分主题

发表于 2011-11-6 21:33 | 显示全部楼层 |阅读模式
各位老师好,

在D盘有一个文件夹叫D。在D中有多个个WORD 文件,每个WORD 文件中都有多个表格,现在想删除文件夹D中所有WORD文件中,含“我“这个关键字的的行。(并且每个WORD中的表格的个数不同,表格的行数也不同)请问有这样批处理的软件吗?或者能帮忙写VB 吗?谢谢。详见附件

先谢谢各位老师了。

D.rar

32.14 KB, 下载次数: 67

TA的精华主题

TA的得分主题

 楼主| 发表于 2011-11-7 12:02 | 显示全部楼层
各位老师,请帮一下忙吧,急啊。谢谢了,感激涕零啊。

TA的精华主题

TA的得分主题

发表于 2011-11-7 12:17 | 显示全部楼层
[广告] Excel易用宝 - 提升Excel的操作效率 · Excel / WPS表格插件       ★免费下载 ★       ★ 使用帮助
如果表格没有合并单元格的话应该不难,如果有合并单元格,我估计会出错。

TA的精华主题

TA的得分主题

发表于 2011-11-7 12:23 | 显示全部楼层
本帖最后由 kqbt 于 2011-11-7 12:24 编辑

参考如下VBA代码:
  1. Sub DSRS()
  2.     'BY Word爱好者Q群[5090217]
  3.     Dim wDoc As Document
  4.     Dim wRng As Range
  5.     Dim wPath As String
  6.     Dim i As Integer
  7.     Application.ScreenUpdating = False
  8.     With Application.FileDialog(msoFileDialogFolderPicker)
  9.         .Title = "选择目标文件夹"
  10.         If .Show = -1 Then
  11.             wPath = .SelectedItems(1)
  12.         Else
  13.             Exit Sub
  14.         End If
  15.     End With
  16.     With Application.FileSearch
  17.         .LookIn = wPath
  18.         .FileType = msoFileTypeWordDocuments
  19.         If .Execute > 0 Then
  20.             For i = 1 To .FoundFiles.Count
  21.                 Set wDoc = Documents.Open(FileName:=.FoundFiles(i), Visible:=False)
  22.                 Set wRng = wDoc.Content
  23.                 With wRng.Find
  24.                   .ClearFormatting
  25.                   .Replacement.ClearFormatting
  26.                   Do While .Execute(findtext:="我", MatchWildcards:=False)
  27.                     If wRng.Information(wdWithInTable) Then
  28.                       wRng.Rows.Delete
  29.                     End If
  30.                   Loop
  31.                 End With
  32.                 wDoc.Close True
  33.             Next
  34.         End If
  35.     End With
  36.     Application.ScreenUpdating = True
  37. End Sub
复制代码

点评

这个代码很好啊  发表于 2012-6-28 22:12

TA的精华主题

TA的得分主题

发表于 2011-11-7 12:56 | 显示全部楼层
  1. Set fso = CreateObject("Scripting.FileSystemObject")
  2. Set ws = CreateObject("wscript.shell")
  3. Set f = fso.GetFolder(".")
  4. Set fc = f.Files
  5. For Each f1 In fc
  6.     If LCase(Right(f1.Name, 3)) = "doc" Then
  7.         Set wd = CreateObject("word.application")
  8.         Set wdoc = wd.Documents.Open(ws.currentdirectory & "" & f1.Name)
  9.         wd.Visible = True
  10.         For Each t In wdoc.Tables
  11.             For Each c In t.Range.Cells
  12.                 If InStr(c.Range.Text, "我") > 0 Then
  13.                     t.Rows(c.RowIndex).Delete
  14.                 End If
  15.             Next
  16.         Next
  17.         wdoc.Save
  18.         wdoc.Close
  19.         wd.Quit
  20.         Set wdoc = Nothing
  21.         Set wd = Nothing
  22.     End If
  23. Next
  24. Set fso = Nothing
  25. Set f = Nothing
  26. Set ws = Nothing
  27. Set fc = Nothing
  28. MsgBox "处理完成"
复制代码
把代码复制到TXT文件,然后另存为VBS文件,放到DOC同一个文件夹里,试试看行不?

TA的精华主题

TA的得分主题

发表于 2011-11-7 13:54 | 显示全部楼层
goodluck1234 发表于 2011-11-7 13:48
谢谢,但是运行宏出出现一个错误。是我哪个地方弄得不对吗?

我还无法识别错误信息,不知道具体错误出在哪一句代码?

TA的精华主题

TA的得分主题

发表于 2011-11-7 13:55 | 显示全部楼层
goodluck1234 发表于 2011-11-7 13:41
谢谢,但是上双击那个VBS 后提示错误,我应该怎么办呢?

是不是你复制的有问题??

TA的精华主题

TA的得分主题

 楼主| 发表于 2011-11-7 13:41 | 显示全部楼层
wudixin96 发表于 2011-11-7 12:56
把代码复制到TXT文件,然后另存为VBS文件,放到DOC同一个文件夹里,试试看行不?

谢谢,但是上双击那个VBS 后提示错误,我应该怎么办呢?

提示错误

提示错误

TA的精华主题

TA的得分主题

 楼主| 发表于 2011-11-7 13:48 | 显示全部楼层
kqbt 发表于 2011-11-7 12:23
参考如下VBA代码:

谢谢,但是运行宏出出现一个错误。是我哪个地方弄得不对吗?
截图01.jpg

TA的精华主题

TA的得分主题

 楼主| 发表于 2011-11-7 14:12 | 显示全部楼层
goodluck1234 发表于 2011-11-7 13:41
谢谢,但是上双击那个VBS 后提示错误,我应该怎么办呢?

呵呵,谢谢老师。已经搞定了,是我刚才没有把代码前的序号去掉。但是能不能在最后弹出的“处理完成”的那个窗口弹出修改的文件个数与修改的文件名呢?
您需要登录后才可以回帖 登录 | 免费注册

本版积分规则

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

GMT+8, 2025-1-13 06:05 , Processed in 0.028732 second(s), 12 queries , Gzip On, MemCache On.

Powered by Discuz! X3.4

© 1999-2023 Wooffice Inc.

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

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

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