我目前正在研究需要比较一段字符串的小型VBA代码。如果我将它直接输入excel,我会这样做:
=IF(C14 = "ABC",1,0)
现在,由于这是一个VBA代码,因此需要将其作为相对引用。相反,它看起来像这样:
=IF(RC[-5] = "ABC",1,0)
问题:现在,后一个IF
语句会出现编译错误 - 为什么会这样?
如果我在哪里输入
=IF(RC[-5] = 2,1,0)
这不会产生任何编译错误。所以看起来字符串比较给我带来了问题。
答案 0 :(得分:1)
对于vba代码,请尝试此
ActiveCell.FormulaR1C1 = "=IF(RC[-5]=""ABC"",1,0)"
通过评论进行跟进。
需要双“”吗? - SteewDK 3分钟前
我们需要额外的"
来包含双引号以将其作为字符串传递。您也可以使用Chr(34)
。例如
ActiveCell.FormulaR1C1 = "=IF(RC[-5]=" & Chr(34) & "ABC" & Chr(34) & ",1,0)"
顺便说一句,如果您不想使用公式,那么您也可以使用OFFSET
例如
If ActiveCell.Offset(0,-5).Value = "ABC" Then _
ActiveCell.Value = 1 Else ActiveCell.Value = 0