我正在使用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)
5t7ly7z51#
您正在查找FormulaArray属性,您可以为单元格设置如下:
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
wnvonmuf2#
不幸的是,FormulaArray在应用于FormulaR1C1预期的范围时不会保留相对单元格引用。要保持单元格引用在垂直范围内,您可以使用FillDown。首先在范围的第一行中输入数组公式:
FormulaR1C1
FillDown
Range("A1").FormulaArray = "=SUM((R1C5:R2C10 = ""INCLUDE"") * RC5:RC10)
然后填写所需范围:
Range("A1:A10").FillDown
2条答案
按热度按时间5t7ly7z51#
您正在查找
FormulaArray
属性,您可以为单元格设置如下:请参阅此处的文档:http://msdn.microsoft.com/en-us/library/office/ff837104%28v=office.15%29.aspx
wnvonmuf2#
不幸的是,
FormulaArray
在应用于FormulaR1C1
预期的范围时不会保留相对单元格引用。要保持单元格引用在垂直范围内,您可以使用FillDown
。首先在范围的第一行中输入数组公式:
然后填写所需范围: