gpt4 book ai didi

vba - VBA 中的实时搜索/计数发生次数?

转载 作者:行者123 更新时间:2023-12-02 07:22:02 24 4
gpt4 key购买 nike

我想知道,有没有办法在 vba 中创建实时搜索和计数方法? (如网络浏览器 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/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com