在word vba 中并没有行对象,因此如果要对word文档的逐行内容进行访问和处理的话,需要进行一些变通。
在word 中可以使用定位(GoTo)功能定位到具体的行,利用这个功能可以实现对word 的逐行访问。
比如以下代码将逐行遍历Word文档的内容,然后将含有字符“元”的行内容删除。
Sub QQ1277187970()
Word.Application.ScreenUpdating = False
Dim oDoc As Document
Dim oRng As Range
Dim oRng1 As Range
Dim oRng2 As Range
Dim sText As String
Set oDoc = Word.ActiveDocument
'先在文档末尾插入一个空白段落,避免遍历文档末尾时出错
oDoc.Content.InsertParagraphAfter
'获取总行数
iLine = oDoc.BuiltInDocumentProperties(wdPropertyLines)
For i = iLine To 1 Step -1
'获取第I行的起始位置
Set oRng1 = oDoc.GoTo(wdGoToLine, Which:=wdGoToAbsolute, Count:=i)
'获取第I+1行的起始位置
Set oRng2 = oDoc.GoTo(wdGoToLine, Which:=wdGoToAbsolute, Count:=i + 1)
Set oRng = oDoc.Range(oRng1.Start, oRng2.Start)
sText = oRng.Text
If sText Like "*元*" Then
oRng.Text = ""
End If
Next i
Word.Application.ScreenUpdating = True
End Sub


发表评论