我想知道,有没有一种方法可以在vba中创建实时搜索和计数方法? (例如webbrowser ctrl f)
我在工作表上添加一个文本框,并添加以下代码以实现搜索:

ActiveWindow.ScrollRow = Cells.Find(TextBox1.Value, searchorder:=xlByRows, searchdirection:=xlNext).Row


这使我可以第一次出现在文档上。
我想要的是计数剩余的事件并使用按钮浏览。
所以我添加了一个计数代码:

count = 0
With ThisWorkbook.Worksheets(1).UsedRange
    Set Loc = .Cells.Find(TextBox1.Value)
    Do Until Loc Is Nothing
        Set Loc = .FindNext(Loc)
        count = count + 1
    Loop
End With


我遇到的问题是,速度慢,如果发现太多事件(我在大文件上工作),会使我的excel冻结。有没有更好的方法来实现这种东西?

谢谢!

最佳答案

WorksheetFunction.CountIf快得多。

完全符合

WorksheetFunction.CountIf(ThisWorkbook.Worksheets(1).UsedRange, TextBox1.Value)


计算包含字符串值的单元格

WorksheetFunction.CountIf(ThisWorkbook.Worksheets(1).UsedRange, "*" & TextBox1.Value & "*")


参考:MSDN - WorksheetFunction.CountIf Method (Excel)

关于vba - 在VBA中实时搜索/计数发生?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/40860781/

10-14 10:37
查看更多