【发布时间】:2016-10-31 20:38:12
【问题描述】:
尊敬的 StackOverflow 用户您好,
我的问题是关于通过宏将公式插入特定范围的单元格。一次又一次。
所以公式的Basic函数应该如下:
=WHEN('ZEK '!F3="X";"6";WHEN('ZEK '!G3="X";"8";"1"))
在我的宏中,它必须更改下一个特定范围的列。
这发生在 for 循环中,i 正在增长。
含义 --> =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 会针对每个单元格范围进行更改
【问题讨论】:
-
您是否尝试将其置于循环中?
f是循环变量吗?您收到错误消息吗?如果是这样,它是什么?如果要使用A1引用样式,请将.FormulaR1C1更改为.Formula。 -
我正在循环播放
i。 f 是变量f = i + 2-,其中 i 一直在增长。更改为 .Formula 后,我仍然会收到运行时错误 1004。 -
您的 x,a,b,c 变量中是否缺少双引号?不用设置公式,可以
Debug.Print "=WHEN..."看看公式是否写对了吗?