【发布时间】:2018-09-10 07:52:19
【问题描述】:
由于某种原因,以下代码生成 1004 运行时错误。这是一个简单的循环,可使用上方 3 行单元格中的值和特定单元格中的“=”符号将公式添加到单元格区域中。
上面 3 行的单元格包含一个公式作为文本,如下所示:IF(OR($A5="",W5<=0),"",RANK(W5,$W$5:$W$9248,0))
我尝试对 'eq' 值(即 '=' 符号)进行硬编码,但错误仍然存在,但如果您将其设为另一个字符,则它可以正常工作。我现在没有主意了。
提前致谢。
Sub insertFormula()
Application.ScreenUpdating = False
'Set variables
Dim c, rng As Range
Dim eq As String
Set rng = ActiveSheet.Range("S5:W5")
eq = ActiveSheet.Range("S1").Value 'This cell holds the = sign
'Loop through range and apply formula
For Each c In rng
c.Value = eq & c.Offset(-3, 0).Value
Next c
Application.ScreenUpdating = True
End Sub
【问题讨论】:
-
在哪里添加公式?
c.formula = ...添加公式,c.value = ...没有。 -
你的意思是写
c.Offset(-3, 0).Value,还是应该写c.Offset(-3, 0).Address? -
嗨 Storax,公式本身作为字符串存储在电子表格中,前面没有 = 符号,即:IF(OR($A5="",W5
-
嗨,Chronocidal,是的,它应该是 .Value,因为我试图连接 '=' 符号和公式,所以循环粘贴 =(无论公式在上面 3 行的单元格中是什么)进入范围。谢谢。
-
再一次,您必须使用
. formula设置一个公式。您可以使用自己编写的字符串,但必须确保它是有效的字符串,并且必须将其放入 ""