gpt4 book ai didi

excel - 使用 VBA 将 ArrayFormula 设置为多个 Excel 单元格

转载 作者:行者123 更新时间:2023-12-02 01:28:27 25 4
gpt4 key购买 nike

我有一个输出单个值的数组公式,我想为一大堆单元格提供相同的数组公式。问题是,当我将数组公式分配给范围时,它会以这样的方式解释公式:它们都共享对数组公式的单个调用的输出,而不是每个公式都输出单独的值。

为了向您展示我的意思,我使用以下代码:

With MarginalData
.Range(.Cells(2, 1), .Cells(13, .UsedRange.Columns.Count)).FormulaArray = pullFormula
End With

我想要的是这样的结果: desired result

这就是我在范围内的每个单元格中分别输入数组公式时的样子。

但是我得到的是这样的: given result

第一个单元格中数组公式的输出在所有列中重复 - 它们都共享相同的输出。

如何以编程方式分配数组公式,就像每个单元格都单独分配一样?

<小时/>

公式为:

{=INDEX(BatchResults,MATCH(TTID&CHAR(1)&ROW()-1,BatchResultsTTIDS&CHAR(1)&BatchResultsLayers,0),MATCH(A$1,BatchTTIDData!$1:$1,0))}

它必须作为数组公式放入,因为它不是在单个列上执行匹配,而是在两个串联列上执行匹配。列的串联必须作为数组返回,因此公式必须作为数组公式输入。

<小时/>

迄今为止最简单的解决方案,以下是已接受答案的变体:

Const pullFormula = "=INDEX(BatchResults,MATCH(TTID&CHAR(1)&ROW()-1,BatchResultsTTIDS&CHAR(1)&BatchResultsLayers,0),MATCH(A$1,BatchTTIDData!$1:$1,0))"
With wrksht
With .Range(.Cells(2, 1), .Cells(13, .UsedRange.Columns.Count))
.Formula = pullFormula
.FormulaArray = .FormulaR1C1
End With
End With

最佳答案

或者选择数组公式为 R1C1,将范围指定为 FormulaR1C1,然后将 FormulaR1C1 指定为数组公式。假设数组公式位于单元格 A2 中

Sub test()

With Sheet1
pullFormula = .Range("A2").FormulaR1C1
Set Rng = .Range(.Cells(2, 1), .Cells(13, .UsedRange.Columns.Count))

Rng.Formula = pullFormula
Rng.FormulaArray = Rng.FormulaR1C1

End With
End Sub

关于excel - 使用 VBA 将 ArrayFormula 设置为多个 Excel 单元格,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6048076/

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