嗨,我试图把一个公式一样ActiveCell.FormulaR1C1 = "=IF(RC[-1]=""India"",RC,"""")"
如果国家不印度然后检查1,CHECK2和Check3应该是空的,否则他们应该显示自己的价值。当我试图把这个公式放在Excel中时,我给出了循环引用警告。我只是想要那个公式。任何帮助将不胜感激。
回答
当公式将自己的单元格直接或间接引用回自己的单元格时,它会创建一个循环引用。
ActiveCell.FormulaR1C1 = "=IF(RC[-1]=""India"",RC,"""")"
你正在写在activecell公式和公式表示,如果RC [-1] = “印度” ,如果其真正RC是一样activecell。因此,您正在收到循环引用错误。
但是,如果你把这个公式在列E如下,它将工作。
Range("E2:E" & lastRow).FormulaR1C1 = "=IF(RC[-4]=""India"",RC[-3],"""")"
另外下面是简单的VBA代码。
Sub sample()
Dim lastRow As Long
lastRow = Range("A65000").End(xlUp).Row
For i = 2 To lastRow
If (InStr(1, Cells(i, 1), "India") <= 0) Then
Range("B" & i & ":D" & i).Clear
End If
Next
End Sub
您不能使用RC
仅因为这是参考当前公式的结果。
选项1:你需要有另一种细胞是有效的细胞,egthe下面创建一个到当前单元格的左边一个单元格:评论后
ActiveCell.Offset(0,1).FormulaR1C1 = "=IF(RC[-2]=""India"",RC[-1],"""")"
选项2:如果你的代码行,只是要清除当前细胞值,如果离开小区不印度然后使用此:
If ActiveCell.Offset(0,-1).Value <> "India" Then ActiveCell.Value = ""
选项3:如果RC中的默认值必须保留,但如果RC [-1]的值变得不等于印度需要重写公式,则必须在公式中硬编码您的值所以:
ActiveCell.FormulaR1C1 = "=IF(RC[-1]=""India"",""" & ActiveCell.Value & ""","""")"
实际上,RC默认具有它自己的值。当我们在** TRUE **的情况下应用上述公式时,RC将采用第一个左侧单元格的值,但是在** FALSE **情况下,RC应该显示它的默认值。在你的公式中,你在其他情况下是空的。 –
存储的默认值在哪里?或者你是否只想覆盖这个RC值,如果是真的? – glh
我只想覆盖此RC值(如果为true)。我已经理解你的逻辑'如果ActiveCell.Offset(0,-1).Value <>“印度”然后ActiveCell.Value =“”'但我想这应该作为一个公式。感谢您的快速响应。 –
- 1. Excel VBA for循环条件
- 2. Excel条件格式VBA循环
- 3. Excel中的循环中公式的单元格引用VBA
- 4. 循环引用excel公式使VBA方法返回0
- 5. Excel VBA条件格式删除公式
- 6. VBA excel。通过条件循环
- 7. Excel VBA如果然后循环条件
- 8. Excel VBA公式中的条件格式公式
- 9. VBA行循环公式
- 10. 在Excel VBA中的循环引用
- 11. Excel的VBA循环条件格式按行
- 12. 循环如果公式中的条件
- 13. Excel VBA,循环
- 14. 在循环内引用公式中的段时VBA破坏
- 15. Excel(2007)VBA - 。带有引号的公式
- 16. 使用公式作为DO的条件while循环
- 17. Excel VBA - 包含公式的单元格的条件格式化
- 18. VBA做循环或“”条件
- 19. excel公式引用现有列条目
- 20. Excel VBA ADO循环
- 21. Excel-VBA循环ifs
- 22. For循环改变公式相对于范围excel vba
- 23. For循环分配索引值Excel VBA
- 24. Excel VBA循环用于
- 25. 我的Excel条件格式公式工作在VBA
- 26. Easy VBA公式excel
- 27. Excel公式内VBA
- 28. Excel公式或VBA
- 29. VBA使用excel公式
- 30. 从VBA调用excel公式
@ Santhosh,RC在任何时候都会有一个默认值。如果RC [-1] =“印度”,那么它应该显示它自己的值,否则它应该显示为空。这是我的要求。 –