gpt4 book ai didi

VBA评估函数和数组公式返回值的范围

转载 作者:行者123 更新时间:2023-12-02 07:36:32 24 4
gpt4 key购买 nike

假设我想使用 Evaluate 函数来计算返回一系列值的数组公式。例如,我尝试在 Sheet2!A:A 的有序列表中为 Sheet1!A:A 中的每个值获取索引(使用 Excel 函数 MATCH)。我想将索引放在 B 列中。

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)} 中时,它可以正常工作并返回每个元素的正确索引。

所以我的问题:如何使用 Evaluate 函数返回整个值范围?

最佳答案

有趣的问题。我无法使用 VBA Evaluate 获取 MATCH 函数来返回数组。但是,以下修改似乎有效,在索引函数中使用零 (0) 作为行参数返回所有行。另请注意,我将 match_type 参数添加到 Match 函数中。

sh.Range("B1:B10").Value = sh.Evaluate("=INDEX(MATCH(A1:A10,Sheet2!A:A,0),0,1)")

关于VBA评估函数和数组公式返回值的范围,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27669551/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com