excel - 将 FormulaArray 求值保存到实际数组

标签 excel vba

背景:
我需要检索数组公式(在 excel 界面中)计算的值,以便循环遍历那里的结果。
问题:
我还没有找到一种方法来存储它计算的所有值。我只能存储第一个。
代码:

Sub test()
Dim ArrTopValues() As Long
    'Fails
    ArrTopValues = Application.Evaluate("=LARGE(A1:A11,{1,2,3})")
End Sub

我需要通过按“F9”来处理公式可以在 Excel 界面上保存的 3 个值
进一步的想法
我知道我可以编写一个 UDF 来重新创建大型函数(或者甚至只是评估大型函数上的“k”并以这种方式构建 Array 变量)。请理解,我正在寻找如何为更多场景存储此数组评估,并且已经完成了解决此问题的解决方法以“使其工作”。

最佳答案

使用 INDEX 返回数组,您需要使数组成为变体:

Sub test()
Dim ArrTopValues()
    ArrTopValues = Application.Evaluate("=INDEX(LARGE(A1:A11,{1,2,3}),0)")

End Sub

关于excel - 将 FormulaArray 求值保存到实际数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50866161/

相关文章:

excel - 从excel(Excel VBA)插入后在PowerPoint中调整图表大小

perl - 如何使用 Spreadsheet::WriteExcel 将以 '=' 开头的字符串写入单元格

csv - 用于将三个 csv 文件列合并为一列的 Windows 脚本

vba - Excel 将一系列单元格值复制到剪贴板

excel - 使用第 1 行合并单元格中的文本为多个图表提供标题

带有字节变量的 VBA 溢出错误

Excel在单元格中显示无限重复的值

读取第一行所有列的SQL命令

Excel 2003 VBA - kernel32 函数 - 和其他库

excel - 每个循环的 VBA 没有执行正确的操作