在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
发表评论