Excel VBA:将WHEN公式插入到具有可变更改列

时间:2016-06-29 08:42:47

标签: excel vba macros formula

Hello亲爱的StackOverflow用户,

我的问题是将Formular via Macro插入特定的细胞范围。再次,一次又一次。

因此公式的基本功能应如下:

=WHEN('ZEK '!F3="X";"6";WHEN('ZEK '!G3="X";"8";"1"))

在我的宏中,它必须更改下一个特定范围的列。 这是在i成长的for循环中发生的。

含义 - > =When('ZEK '!$F$"& i+2 &"....... 或者应该起作用的任何其他语法。我的尝试没有,这就是为什么我需要你的帮助。

这是我的初步尝试,我用字符串交换了所有内容:

Sub 123()
Dim a,b,c As String
a = 1
b = 6
c = 8

....

'used and declared variables k, x, f, a, b, c

Range(Cells(k + 2, 5), Cells(k + 27, 5)).FormulaR1C1 = _
"=WHEN('ZEK'!$F$" & f & "=" & x & ";" & a & ";WHEN('ZEK'!$G$" & f & "=" & x & ";" & b & ";" & c & "))"

End Sub

我得到运行时错误1004.(从.FormulaR1C1改为.Formula)

我希望我提供足够的信息,以便你能帮助我。 这真的不一定是高性能的,我只需要将公式变成大约100.000个单元格,每个单元格区域i都会发生变化

1 个答案:

答案 0 :(得分:0)

我认为这是一个语言问题...尝试

"=IF('ZEK'!$F$" & f & "=" & x & "," & a & ",IF('ZEK'!$G$" & f & "=" & x & "," & b & "," & c & "))"

请注意使用IF,作为分隔符而不是;WHEN甚至是有效的工作表函数吗?老实说,当通过VBA设置公式时,我不知道工作表函数是否被翻译。这些分隔符虽然有所改进。

编辑:还有.FormulaLocal属性可以作为分隔符使用;!因此,将.Formula更改为.FormulaLocal。如果您在使用,作为默认分隔符的计算机上执行此操作,则可能会导致错误,因此我尝试使用.Formula

相关问题