将公式从VBA插入Excel时出现分隔符问题

问题描述 投票:0回答:1

我想将一个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())"

和其他一些小东西,都没有用。

如果有人可以解决此问题,或者看到我想念的东西,我很乐意听到。

谢谢。

excel vba
1个回答
0
投票

这是我最近遇到的myself,这很烦人。如果您不想弄乱列表运算符,可以尝试:

.Cells(2, 8).Formula = "=if(" & .Cells(2, 3).Address(False, False) & "=1," & Replace(n, ",", ".") & ",na())"
© www.soinside.com 2019 - 2024. All rights reserved.