我想将一个if公式放入一个单元格中。但是,当我尝试运行代码时,出现错误1004(下面的相关部分)。
n = 1.2
.Cells(2, 8).Formula = "=if(" & .Cells(2, 3).Address(False, False) & "=1," & n & ",na())"
[如果将公式放入变量中,则可以看到vba将1.2保存为“ 1,2”,这被解释为公式中的参数太多。
所以代替
=if(C2=1,1.2,na())
我知道
=if(C2=1,1,2,na())
超出VBA。
如果我手动输入
.Cells(2, 8).Formula = "=if(" & .Cells(2, 3).Address(False, False) & "=0,1.2" & ",na())"
公式在Excel中就正确显示了,但是由于我需要遍历数据,所以这不是可持续的解决方案。
由于我在欧洲,所以我怀疑区域设置是问题的一部分,但是由于这些设置是公司范围内的,因此我不能在不引起其他问题的情况下进行调整。
我尝试过
n = 1.2
.Cells(2, 8).Formula = "=if(" & .Cells(2, 3).Address(False, False) & "=1," & CDbl(n) & ",na())"
和其他一些小东西,都没有用。
如果有人可以解决此问题,或者看到我想念的东西,我很乐意听到。
谢谢。
这是我最近遇到的myself,这很烦人。如果您不想弄乱列表运算符,可以尝试:
.Cells(2, 8).Formula = "=if(" & .Cells(2, 3).Address(False, False) & "=1," & Replace(n, ",", ".") & ",na())"