无法设置范围vba 2003的FormulaArray属性
我想在vba 2003中设置范围的FormulaArray属性。我这样做,
代码:
Sheets("Sheet2").Range("AM4:AM" & (rowNum - 2)).FormulaArray = "=IF(A4=MIN(IF(MONTH(A$4:A$" & (rowNum - 2) & ")=MONTH(A4),A$4:A$" & (rowNum - 2) & ",1E+99)),A4,"")"
它返回给我一个错误“1004”:
Unable to set the FormulaArray Property of the range method.
不确定是什么问题。 我正在使用Excel 2003.需要一些指导来解决它。
如果我将rowNum = 5
作为testing目的,则您的公式计算结果为
=IF(A4=MIN(IF(MONTH(A$4:A$3)=MONTH(A4),A$4:A$3,1E+99)),A4,")
请注意,您最后错过了双引号?
尝试这个
Sheets("Sheet2").Range("AM4:AM" & (rowNum - 2)).FormulaArray = _ "=IF(A4=MIN(IF(MONTH(A$4:A$" & _ (rowNum - 2) & _ ")=MONTH(A4),A$4:A$" & _ (rowNum - 2) & _ ",1E+99)),A4,"""")"
上述公式现在评估为
=IF(A4=MIN(IF(MONTH(A$4:A$3)=MONTH(A4),A$4:A$3,1E+99)),A4,"")
编辑
如何改变代码中的A4按照它所在的行移动? –
你不能像这样增加公式数组中的行。 要达到您的要求,请仅在单元格AM4
input公式,然后填写它。 看到这个例子
rowNum = 8 With Sheets("Sheet2") .Range("AM4").FormulaArray = _ "=IF(A4=MIN(IF(MONTH(A$4:A$" & _ (rowNum - 2) & _ ")=MONTH(A4),A$4:A$" & _ (rowNum - 2) & _ ",1E+99)),A4,"""")" .Range("AM4:AM" & (rowNum - 2)).FillDown End With