我部分代码如下:
Public Sub SearchCharInFile(ByVal strFilePath As String, ByVal strChars As String)
Dim mWordapp As Word.Application
Dim Selection As Word.Selection
Dim strFileName As String
mWordapp = CreateObject("Word.Application")
With mWordapp.FileSearch
.FileName = "*.doc"
.LookIn = strFilePath
.SearchSubFolders = True
.Execute()
For i As Integer = 1 To .FoundFiles.Count
strFileName = .FoundFiles(i)
mWordapp.Documents.Open(FileName:=strFileName, ConfirmConversions:=False, Readonly:=False, AddToRecentFiles:=False, PasswordDocument:="", PasswordTemplate:="", Revert:=False, WritePasswordDocument:="", WritePasswordTemplate:="")
Selection.HomeKey()
Selection.WholeStory()
Selection.Find.ClearFormatting()
With Selection.Find
.Text = strChars
.Forward = True
.MatchCase = False
.Format = False
.MatchWholeWord = False
.MatchByte = False
.MatchAllWordForms = False
.MatchFuzzy = False
.MatchSoundsLike = False
.MatchWildcards = False
End With
Selection.Find.Execute()
Next
End With
End Sub
这样做的话,程序只能找到第一个位置的字符串,如何找到后续的字符串呢?并且我不知道怎样返回字符串所在的行。
望高手指点!
4 个解决方案
#1
ding
#2
zai ding
#3
用循环语句判断一下:
while(Selection.Find.Execute() = vsFindResultFound)
'继续找
'再次执行Selection.Find.Execute() ,以免进入死循环
Selection.Find.Execute()
end while
while(Selection.Find.Execute() = vsFindResultFound)
'继续找
'再次执行Selection.Find.Execute() ,以免进入死循环
Selection.Find.Execute()
end while
#4
这个我已经解决了。
现在的主要问题是不能确定找到的字符串在word文档中的哪一行啊。高手指点
现在的主要问题是不能确定找到的字符串在word文档中的哪一行啊。高手指点
#1
ding
#2
zai ding
#3
用循环语句判断一下:
while(Selection.Find.Execute() = vsFindResultFound)
'继续找
'再次执行Selection.Find.Execute() ,以免进入死循环
Selection.Find.Execute()
end while
while(Selection.Find.Execute() = vsFindResultFound)
'继续找
'再次执行Selection.Find.Execute() ,以免进入死循环
Selection.Find.Execute()
end while
#4
这个我已经解决了。
现在的主要问题是不能确定找到的字符串在word文档中的哪一行啊。高手指点
现在的主要问题是不能确定找到的字符串在word文档中的哪一行啊。高手指点