Excel 更快的查找方式?(10万排)(VBA)

Excel 更快的查找方式?(10万排)(VBA),excel,vba,Excel,Vba,我们正在使用一个用VBA编写的工具,现在有一个从其他来源查找数据的请求。 映射表包含大约2k行,而源可以包含10k-130k行 我知道,Excel不是一个数据库,我知道,它不是我的电话 我一直在尝试编写一个检索数据的函数,但似乎没有一个足够快/好 首先,我尝试将映射表加载到一个数组中,如果存在匹配项,则使用FILTER函数返回值,遍历所有行。大约10万行,这可能需要15-20分钟 Shortened code here: https://pastebin.com/YMd5xM3Y 其次,我尝试

我们正在使用一个用VBA编写的工具,现在有一个从其他来源查找数据的请求。 映射表包含大约2k行,而源可以包含10k-130k行

我知道,Excel不是一个数据库,我知道,它不是我的电话

我一直在尝试编写一个检索数据的函数,但似乎没有一个足够快/好

首先,我尝试将映射表加载到一个数组中,如果存在匹配项,则使用FILTER函数返回值,遍历所有行。大约10万行,这可能需要15-20分钟

Shortened code here: https://pastebin.com/YMd5xM3Y
其次,我尝试使用ADODB编写自定义SQL语句。不幸的是,我无法理解如何在select语句中生成所需的行\ u NUMBER(),因为此查询的结果与左表的顺序不同

Code here: https://pastebin.com/dAgqSxux
目前我正在使用powerquery来解决这个问题,但是我真的很想用VBA来解决它


如何更快地查找数据?

请在此处添加代码好吗?我无法帮助您使用SQL语句,但是如果您将两个列表都放在一个数组中,并使用isinarray函数进行检查,该怎么办?添加了代码!我认为VBA中不存在isinarray函数。在VBA中,可以使用Dictionary对象进行快速查找。您还可以使用ArrayList,或者,如果您的数据已排序,则使用二进制搜索例程<代码>范围。根据您的数据和要求,查找方法可能也很有用。这里有一个类似的问题-您可以添加代码吗?