我想知道,有没有办法在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会冻结。是否有更好的方法来实现这种东西?
谢谢!
答案 0 :(得分:3)
var allItems = dbContext.Items
.Select(x => new {
Id = x.Id,
PropertyA = x.PropertyA,
Children = x.Children.Select(c => new {
Id = c.Id,
PropertyA = c.PropertyA,
})
})
.AsEnumerable()
.Select(x => new Projection() {
Id = x.Id,
PropertyA = x.PropertyA,
Children = x.Children.Select(c => new Projection {
Id = c.Id,
PropertyA = c.PropertyA
}).ToList()
}).ToList();
要快得多。
WorksheetFunction.CountIf
WorksheetFunction.CountIf(ThisWorkbook.Worksheets(1).UsedRange, TextBox1.Value)