FormulaArray不断更改为相对引用

时间:2018-03-27 12:40:28

标签: excel vba excel-vba excel-formula

我正在尝试使用VBA在工作表中输入公式(以便以后在Excel解算器中使用)。它工作正常,直到今天早上。

For u = 1 To Row2
            Sheets("Testa").Cells(u + 1, 14).FormulaArray = "=SUM(IF(B2:B2000=" & CStr(u) & ",F2:H2000,0))"
        Next
For v = 1 To Row
            Sheets("Testa").Cells(v + 1, 18).FormulaArray = "=SUM(IF(A2:A2000=" & CStr(v) & ",F2:H2000,0))"
        Next

第一个循环在单元格中给出了这个结果:“= SUM(IF(RC [-12]:R [1998] C [-12] = 1,RC [-8]:R [1998] C [-6],0))“,改变对相对引用的绝对引用,而不是将函数转换为法语等价。第二个循环工作得很好。 A列和B列包含一个数字列表(从1到Row或Row2),如下所示:

1 1
1 2
1 3
2 1
2 2
2 3
3 1
3 2
3 3

我不知道我错过了什么。欢迎任何帮助!

1 个答案:

答案 0 :(得分:0)

我编写公式的范围被设置为文本范围,解释了为什么它没有计算公式。手动将其更改为标准范围可以解决问题。