我正在尝试编写一个VBA例程,该例程将使用字符串,搜索给定的Excel工作簿,并向我返回所有可能的匹配项。
我目前有一个可行的实现,但是它非常慢,因为它是double for循环。当然,内置的Excel Find函数经过“优化”以查找单个匹配项,但是我希望它返回一个初始匹配项数组,然后可以将其应用于其他方法。
我将发布一些我已经拥有的伪代码
For all sheets in workbook
For all used rows in worksheet
If cell matches search string
do some stuff
end
end
end
如前所述,此double for循环使事情运行非常缓慢,因此,我希望尽可能消除这种情况。有什么建议么?
更新
尽管下面的答案可以改善我的方法,但由于需要一遍又一遍地进行多次查询,最终我得到了些许不同。
相反,我决定遍历文档中的所有行,并为每个唯一行创建一个包含键的字典。然后,此指向的值将是可能匹配项的列表,以便稍后查询时,我可以仅检查它是否存在,如果存在,则可以快速获取匹配项列表。
基本上只是在做一个初始扫描存储一切都在一个可管理的结构,然后查询该结构可以在完成O(1)时间
30秒到达战场
慕雪6442864