假设我想使用Evaluate函数来评估返回值范围的数组公式。例如,我尝试在Sheet2中的有序列表中获取索引(使用Excel函数MATCH)!A:A为Sheet1中的每个值!A:A。我希望把索引列B.VBA评估函数和数组公式返回值的范围
Dim sh as Worksheet
Set sh = Sheets("Sheet1")
sh.Range("B1:B10").Value = sh.Evaluate("=MATCH(A1:A10,Sheet2!A:A)")
焕我运行代码,我得到重复值的列 - 值等于第一个元素的索引。这是不正确的。
当我将数组公式应用于工作表{= MATCH(A1:A10,Sheet2!A:A)}时,它的工作原理没有问题,并为每个元素返回正确的索引。
所以我的问题:如何使用评估函数返回一个完整的值范围?
尝试'评估( “= TRANSPOSE(MATCH(A1:A10,Sheet 2中!A:A))”)'或'Application.Transpose(评估(“= MATCH(A1:A10,Sheet2的甲! A)“))' – 2014-12-27 17:20:14
不,那也行不通 - 我测试过了。如果它工作,我会感到惊讶,因为A1:A10是一列源值,而B1:B10也是一列。我想,转置不是必要的。 – 2014-12-27 17:24:38