2009-11-12 37 views
1

这除了的VBA代码Range.Formula =在VBA抛出一个奇怪的错误

summ = "СУММ(AQ" + Format(first) + ":AX" + Format(last - 1) + ")" 
cell = "AQ" + Format(last) + ":AX" + Format(last) 
r.range(cell).Formula = "=" + summ 

应该插入一个公式,例如=СУММ(DW6:EI18)分成DW19

СУММSUM俄罗斯本地化名称)

会发生什么事是,上述正确的公式出现在适当的地方,但显示#NAME错误。如果我选择单元格,将光标放在公式上,然后按回车,公式不会更改,但会开始工作。

如何使上面的代码工作?

+0

这与你的问题没有关系,但你应该避免使用“+”作为字符串连接的习惯。改用“&”。 – 2009-11-12 17:18:13

+0

对不起,重发。公司防火墙阻止了SO,我不知道我的任何问题都已发布。管理员今天解除封锁。 – 2009-11-13 07:27:34

回答

6

需要,因为你使用俄罗斯functionnames设置,而不是公式FormulaLocal。

r.range(cell).FormulaLocal = "=" + summ

-1

试试这个

summ = "=СУММ(AQ" + Format(first) + ":AX" + Format(last - 1) + ")" 
cell = "AQ" + Format(last) + ":AX" + Format(last) 
r.range(cell).Formula = summ 
+0

没有。无论哪种情况,绝对相同的值都将传递给Formula属性。 – 2009-11-12 17:19:02

+0

我以为它可能与最后一行中的+有关。也许VBA是错误地转换类型而不是仅仅追加。 – guitarthrower 2009-11-12 18:12:29

0

我认为这是玛格(1接听)FormulaLocal答案即使OP没有标明它。 公式本身没有任何问题。

+0

评论属于评论。 – SilentGhost 2009-11-13 23:21:36

+0

我没有登录,此外,这不是一个评论,它的答案与另一个答案相关。 – 2009-11-15 21:43:16

+0

真棒,由评论纳粹标记。欢呼的伙计。 – 2009-11-16 23:16:09

3

但是,我有同样的问题,与其他功能。

我修复了给出所有英文函数名称的问题。我的意思是,功能O - >或功能SI - > IF等。

我工作在西班牙语版本。

我希望我的回答有用。