Excel VBA: 将 WHEN 公式插入到具有变量更改列的特定单元格范围
Excel VBA: inserting WHEN formula into specific range of cells with variable changing column
亲爱的 Whosebug 用户,您好,
我的问题是关于通过宏将公式插入特定范围的单元格。一次又一次。
所以公式的基本函数应该是这样的:
=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
为每个单元格范围
进行更改
我觉得是语言问题...试试
"=IF('ZEK'!$F$" & f & "=" & x & "," & a & ",IF('ZEK'!$G$" & f & "=" & x & "," & b & "," & c & "))"
请注意使用 IF
和 ,
作为分隔符而不是 ;
。 WHEN
甚至是一个有效的工作表函数吗?老实说,当通过 VBA 设置公式时,我不知道工作表函数是否被翻译。不过分隔符已修改。
编辑:还有 .FormulaLocal
属性 应该与 ;
一起使用作为分隔符!所以把.Formula
改成.FormulaLocal
。如果您在使用 ,
作为默认分隔符的机器上执行它,这可能会导致错误,因此我会尝试坚持使用 .Formula
.
亲爱的 Whosebug 用户,您好,
我的问题是关于通过宏将公式插入特定范围的单元格。一次又一次。
所以公式的基本函数应该是这样的:
=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
为每个单元格范围
我觉得是语言问题...试试
"=IF('ZEK'!$F$" & f & "=" & x & "," & a & ",IF('ZEK'!$G$" & f & "=" & x & "," & b & "," & c & "))"
请注意使用 IF
和 ,
作为分隔符而不是 ;
。 WHEN
甚至是一个有效的工作表函数吗?老实说,当通过 VBA 设置公式时,我不知道工作表函数是否被翻译。不过分隔符已修改。
编辑:还有 .FormulaLocal
属性 应该与 ;
一起使用作为分隔符!所以把.Formula
改成.FormulaLocal
。如果您在使用 ,
作为默认分隔符的机器上执行它,这可能会导致错误,因此我会尝试坚持使用 .Formula
.