这里有VBA的新手 . 我需要帮助设置一个VBA命令,它将遍历B列中的范围,并根据B列中的值在E列中设置索引匹配公式 .
我尝试从其他帖子编辑命令,但我似乎无法找到它是如何工作的,基于此链接Excel VBA - Loop through range and set formula in each cell
我需要的索引匹配公式基本上将ID号与基于另一张表中的数据库的名称相匹配 . 我目前在工作表中使用固定的索引匹配函数,但这会搞砸过滤器/条目的排序 . 我已经使用了另一个宏来清除返回空白的单元格内容 - 但是需要很长时间来浏览表格 .
如果B列中的单元格在1到450之间,则在E列的单元格中需要公式 .
=IF($B49="","",INDEX(NAMES,MATCH($B49,ID,0)))
提前致谢 .
1 回答
这听起来像一个简单的解决方案可能是:
这将在Col E中为它在Col B中找到的每个值设置1到450之间的公式 .
对于长列表,这可能会变得有点慢 . 你可以关闭自动计算和工作表事件来加快速度:
在我的电脑上提供了以下速度提升(20次迭代后的平均速度):
或者,如果来自索引函数的错误是抛出过滤器并进行排序,则可以尝试将函数包装在IFERROR()函数中并完全绕过VBA .