我想知道,有没有一种方法可以在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/