Excel宏搜索文本,然后弹出框(如果找到),然后显示word出现的次数

Excel宏搜索文本,然后弹出框(如果找到),然后显示word出现的次数,excel,vba,Excel,Vba,有人能帮我修改这个代码,这样当它找到这个词时,它也会显示这个词出现的次数吗?谢谢 Sub findtext() ' ' findrobot Macro ' Will find the word robot ' ' Keyboard Shortcut: Ctrl+t ' Dim found As Variant Set found = Sheets("Email").Cells.find("robot", Sheets("Email").Cells(1, 1), xlValues, xlPart

有人能帮我修改这个代码,这样当它找到这个词时,它也会显示这个词出现的次数吗?谢谢

Sub findtext()
'
' findrobot Macro
' Will find the word robot
'
' Keyboard Shortcut: Ctrl+t
'
Dim found As Variant

Set found = Sheets("Email").Cells.find("robot", Sheets("Email").Cells(1, 1), xlValues, xlPart)

If (Not found Is Nothing) Then


    'found
    MsgBox "Words Found =" & found, vbOKOnly, "Found"


Else

    'not found
MsgBox "Sorry the text was not found please try again. Macro stopping"

 End If

End Sub
只是为了好玩(不是真正的压力测试,但似乎有效),这里有一个非循环版本:

Sub test()
Dim Number  As Long
Dim str     As String

str = "robot"

Number = Evaluate("=SUMPRODUCT(--(NOT(ISERROR(FIND(""" & str & """,A1:AZ6,1)))))")

MsgBox str & " was found " & Number & " times!"

End Sub

确保调整评估行中的范围(当前为A1:AZ6)以适合您的情况。另外,如果您要查找的单词在一个单元格中出现多次,我敢肯定这不会返回正确的结果。我必须去参加一个会议,但如果你认为会是这样,我可以看看我是否可以稍后再解决…

你可能需要使用
.FindNext
方法循环。这里应该有几个例子说明如何在StackOverflow上使用它。查看它们,您可以尝试修改您的代码,或者如果您在修改时遇到困难,只需修改您的问题,以显示您的发现、您尝试了什么,并解释它没有按预期工作。谢谢,这就是我希望它做的!太棒了,很高兴我能帮忙。祝你的项目顺利完成!