excel 通过VBA插入数组公式

xdyibdwo  于 2023-03-24  发布在  其他
关注(0)|答案(2)|浏览(215)

我正在使用VBA,我需要插入一个数组公式(如果我手动编写它,我会按Ctrl+Shift+Enter而不仅仅是Enter)。当我像常规公式一样插入它时,它不起作用,当我在它周围放置{}时也是如此...使用VBA编写公式的正确方法是什么?
公式如下:

=INDEX(subset!R1C1:R2472C10,MATCH(1,(RC1=subset!C1)*(RC2=subset!C2)*(RC5=subset!C5)*(RC6=subset!C6),0),10)
5t7ly7z5

5t7ly7z51#

您正在查找FormulaArray属性,您可以为单元格设置如下:

Range("A1").FormulaArray = "=INDEX(subset!R1C1:R2472C10,MATCH(1,(RC1=subset!C1)(RC2=subset!C2)(RC5=subset!C5)*(RC6=subset!C6),0),10)"

请参阅此处的文档:http://msdn.microsoft.com/en-us/library/office/ff837104%28v=office.15%29.aspx

wnvonmuf

wnvonmuf2#

不幸的是,FormulaArray在应用于FormulaR1C1预期的范围时不会保留相对单元格引用。要保持单元格引用在垂直范围内,您可以使用FillDown
首先在范围的第一行中输入数组公式:

Range("A1").FormulaArray = "=SUM((R1C5:R2C10 = ""INCLUDE"") * RC5:RC10)

然后填写所需范围:

Range("A1:A10").FillDown

相关问题