如何判断.selection.find是否在excel vba中找到任何内容
我可以使用此代码在用户指定的word文件中查找一个句子,并在该句子后插入文本。问题是,如果word文件中不存在预期的句子,文本将插入word文件的开头。我需要的是,如果没有找到预期的句子,请转到错误处理程序。如何修改代码 [更新]以下代码有效:如何判断.selection.find是否在excel vba中找到任何内容,excel,vba,ms-word,find,Excel,Vba,Ms Word,Find,我可以使用此代码在用户指定的word文件中查找一个句子,并在该句子后插入文本。问题是,如果word文件中不存在预期的句子,文本将插入word文件的开头。我需要的是,如果没有找到预期的句子,请转到错误处理程序。如何修改代码 [更新]以下代码有效: Dim WordApp As Object, WordDoc As Object Dim FullName As String: FullName = Sheet5.Cells(7, 5).Value Set WordApp = New Word.Ap
Dim WordApp As Object, WordDoc As Object
Dim FullName As String: FullName = Sheet5.Cells(7, 5).Value
Set WordApp = New Word.Application
With WordApp
.Visible = True
Set WordDoc = .Documents.Open(FullName)
.ActiveDocument.Select
With .Selection
With .Find
.ClearFormatting
.MatchWholeWord = True
.MatchCase = False
.Text = "There is one electric heater."
.Execute
End With
If .Find.Found Then
.Collapse Direction:=wdCollapseStart
.TypeParagraph
.ParagraphFormat.Alignment = wdAlignParagraphLeft
.MoveEnd wdLine, 1
Sheet3.Range("G2").Copy
.PasteExcelTable False, False, False
Sheet2.Range("A1", "B10").Copy
.PasteExcelTable False, False, False
Else
MsgBox "No electric heater reference found.", vbExclamation
End If
End With
.Activate
End With
尝试以下几点:
Dim WordApp As Object, WordDoc As Object, WordRng As Object
Dim strFlNm As String: strFlNm = Sheet5.Range("D6").Value
Set WordApp = CreateObject("Word.Application")
With WordApp
.Visible = True
Set WordDoc = .Documents.Open(strFlNm)
With WordDoc.Range
With .Find
.ClearFormatting
.MatchWholeWord = True
.MatchCase = False
.Text = "There is one electric heater."
.Execute
End With
If .Find.Found = True Then
.InsertAfter vbCr
.Collapse 0 ' wdCollapseEnd
.ParagraphFormat.Alignment = 0 'wdAlignParagraphLeft
Sheet3.Range("G2").Copy
.PasteExcelTable False, False, False
.InsertAfter vbCr
Sheet2.Range("A1:B10").Copy
.Collapse 0 ' wdCollapseEnd
.PasteExcelTable False, False, False
Else
MsgBox "No electric heater reference found", vbExclamation
End If
End With
.Activate
End With
我假设代码被重复使用?而且这可能是“第一次”。。。不幸的是,您没有提供完整的代码,也没有解释如何“更新”以前工作的代码。没有这些信息,没有人能帮助你。如果你查阅了网站“关于提问”中的信息,你会发现你需要提供帮助,以便人们能够帮助你。@Cindymister谢谢你的评论。这次我解决了这个问题。当我将来提问时,将发布更多有用的信息。@Cindymister我更改了我的问题。你能看一下吗?谢谢。您的代码仍然无法编译-与
结束If
匹配的If
在哪里?谢谢。代码运行得很好。实际上,我尝试添加一些新代码,在word文件的Sheet3.Range(“G2”)
之后插入Sheet2.Range(“A1”、“B10”)
。但是,新零件插入到活页3.Range(“G2”)
之前。(对不起,我不知道如何在评论中发布代码。按ctrl+k将打开Chrome搜索框,而不是切换代码)您更新的代码仍然将Sheet2.Range(“A1:B10”)
放在word文件中Sheet3.Range(“G2”)
之前。我修复并将更新的代码放入问题中。谢谢你的帮助。