如何用vba访问使用word的“行对象”?

在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

 

       

发表评论