求WORD VBA一次性删除含关键字的行

 我来答
lkshome
推荐于2016-07-12 · 超过41用户采纳过TA的回答
知道小有建树答主
回答量:101
采纳率:0%
帮助的人:115万
展开全部
Sub Macro4()
Dim i As Paragraph
Application.ScreenUpdating = False
For Each i In ActiveDocument.Paragraphs
Selection.Find.ClearFormatting
Selection.Find.Text = "所含的关键字"
Selection.Find.Execute
If Selection.Text <> "" Then
Selection.HomeKey Unit:=wdLine
Selection.EndKey Unit:=wdLine, Extend:=wdExtend
Selection.Delete Unit:=wdCharacter, Count:=1
End If
Next
End Sub
把代码中所含的关键字几个字改成你想要的就可以了
追问
谢谢您的代码执行非常快 能否帮偶改成是查找关键字然后执行 不用每次把关键字放在代码中进行修改后再操作 劳烦啦~
追答
Sub text()
Dim i As Paragraph
n = InputBox("请输入删除内容")
Application.ScreenUpdating = False
For Each i In ActiveDocument.Paragraphs
Selection.Find.ClearFormatting
Selection.Find.text = n
Selection.Find.Execute
If Selection.text = n Then
Selection.HomeKey Unit:=wdLine
Selection.EndKey Unit:=wdLine, Extend:=wdExtend
Selection.Delete Unit:=wdCharacter, Count:=1
End If
Next
End Sub
刚才代码还有点问题,现在应该好了
jongwenzhong
2012-11-15 · TA获得超过157个赞
知道小有建树答主
回答量:229
采纳率:0%
帮助的人:171万
展开全部
把word文件(支持多文件)和包含VBA程序的EXCEL放在同一文件夹下,
更换这一句中"fffad"为你指的关键词 If InStr(1, docRange, "fffad") > 0 Then docRange.Delete
VBA程序如下:
Sub test()
Dim FN As String, In_Count, col As Long
Dim myDOC, myApp
Dim docApp As Word.Application
Dim docRange As Word.Range
Set myApp = CreateObject("Word.Application")
myApp.Visible = False
myApp.DisplayAlerts = wdAlertsNone
FN = Dir(ThisWorkbook.Path & "\*.doc")
Do Until FN = ""
FN = ThisWorkbook.Path & "\" & FN
Set myDOC = myApp.Documents.Open(FN)
In_Count = In_Count + 1
col = myApp.ActiveDocument.Paragraphs.Count
For i = 1 To col
Application.ScreenUpdating = False
With myApp.ActiveDocument
On Error Resume Next
Set docRange = .Paragraphs(i).Range
If InStr(1, docRange, "fffad") > 0 Then docRange.Delete
End With
Next i
myApp.ActiveDocument.Close True
FN = Dir()
Loop
myApp.Quit
Set docRange = Nothing
Set myApp = Nothing
End Sub
追问
FN = Dir(ThisWorkbook.Path & "\*.doc")
以上这句运行错误’424’ 通不过
追答
我调试了没有错误啊,VBA所在的EXCEL要先保存一下,并和word放在同一个文件夹内。
因为只有保存了,ThisWorkbook.Path 才生效
有问题再Hi我好了
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
李晓莹92
2012-11-15
知道答主
回答量:5
采纳率:0%
帮助的人:8.2万
展开全部
请将以下代码复制贴入WORD VBA宏中 选择运行即可 应该是你想要的代码
Sub 删除查找含关键词的行()
Dim KeyWord As String
KeyWord = InputBox("请输入关键词(词长不限,中英均可):", "关键词设置", "")
If KeyWord = "" Then Exit Sub
Selection.HomeKey wdStory
Do
With Selection.Find
.Text = KeyWord
.Wrap = wdFindStop
.Forward = True
End With
If Selection.Find.Execute = False Then Exit Do
Selection.Paragraphs(1).Range.Select
If (Left(Selection.Text, Len(KeyWord))) = KeyWord Then
Selection.Paragraphs(1).Range.delete
Selection.HomeKey unit:=wdLine
End If
Loop
Selection.HomeKey unit:=wdStory
End Sub
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
niceasdfa11
2012-11-15 · TA获得超过262个赞
知道小有建树答主
回答量:444
采纳率:100%
帮助的人:357万
展开全部
给个具体例子啊
你可以用instr 进行判断
然后用rows(),delete删除行
本回答被网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
太极健1969
2012-11-15 · TA获得超过9034个赞
知道大有可为答主
回答量:8668
采纳率:69%
帮助的人:3632万
展开全部
delete
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 2条折叠回答
收起 更多回答(3)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式