我已经做了相当多的搜索,但找不到这个具体案例的答案。
我的数据集大约650 k行长,所以我一直试图尽快编写代码。我想要做的是让VBA将整个列与另一个表进行索引。
到目前为止,我的代码是VB:
LastRow = Cells(Rows.Count, "A").End(xlUp).Row
Range("Q2:Q" & LastRow).Value = Evaluate("INDEX(MATCH(C2:C" & LastRow & ",'CC Map'!A:A,0),0)") 这会很快地将C列与工作表“CC Map”!a:a进行比较,并将值放在列Q中。然而,我希望从“CC Map”中返回相应的值!B:B。
当我使用VB时:
LastRow = Cells(Rows.Count, "A").End(xlUp).Row
Range("Q2:Q" & LastRow).Value = Evaluate("INDEX('CC Map'!B:B,MATCH(C2:C" & LastRow & ",'CC Map'!A:A,0))") 它返回相同的每个值(对应于匹配C2.)
我认为问题在于将数组作为索引中的第二个参数,但我试图避免循环。我现在所拥有的几乎立刻就开始了。
发布于 2016-05-27 12:03:36
如果返回值是文本,则可以使用:
Range("Q2:Q" & LastRow).Value = Evaluate("INDEX(IF(1,T(OFFSET('CC Map'!B1,MATCH(C2:C" & LastRow & ",'CC Map'!A:A,0)-1,0))),)")对于数值,将T替换为N。
https://stackoverflow.com/questions/37482467
复制相似问题