arrays - 如果Excel中的单元格包含数组公式(例如 `={1,2,3}` ),我可以使用VBA提取数组的元素吗

标签 arrays excel vba

如标题所示,单元格A1包含公式={1,2,3},这是单元格的有效输入,我可以使用VBA吗获取数组的元素。

请注意,Range("A1").Value 返回值 1,但 Range("A1").Formula 返回值字符串={1,2,3}。所以我能想到的唯一方法是解析公式并用 , (如 CSV 行)分隔值。

在这种情况下,还有其他方法可以在 vba 中返回值数组吗?我什至尝试将其作为数组读取到 v=Range("A1:A2").Value2 的变体中,但 v(1) 包含 1<仅

最佳答案

您可以首先获取 Range 对象的 FormulaArray 属性,然后对其进行Evaluate 以返回完整数组:

v = Evaluate(Range("A1").FormulaArray)

您可以按预期访问元素(和/或像正常声明 Array 一样操作它们):

v(1) --> 1
v(2) --> 2
v(3) --> 3

关于arrays - 如果Excel中的单元格包含数组公式(例如 `={1,2,3}` ),我可以使用VBA提取数组的元素吗,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30337385/

相关文章:

合并字节数组时 C# 内存不足异常

javascript - 如何在动态表中插入数组的某些值作为 <td> 的 CSS 样式属性?

javascript - 循环的结果不能正常工作

Excel VBA 工作表.名称与工作表.范围

excel - 获取范围内第一个选定的单元格

python - 将 txt 文件转换为 int 数组

excel - 如何在 Excel 中使用 VBA 获取当前行并访问列?

excel - 使用 ACCESS vba 中的日期变量从另一个调用子程序

vba - 检查 2 列中的值是否匹配 & Excel 如果另一行通过特定条件则删除行

VBA从文档中的数据创建另存为文件名