我试图在IF公式中使用单元格地址,我得到一个ERROR消息。 我将AvgCell / StdCell定义为字符串,而我的IF函数没有如何读取它
以下是代码:
Dim AvgCell As String
ActiveCell.Formula = "=AVERAGE(M" & StartRow & ":M" & myRow - 1 & ")"
AvgCell = Cells(myRow + 1, 14).Address
Cells(k, 14).FormulaR1C1 = "=IF(RC[-1]>" & AvgCell & " + " & StdCell & ",1,0)"
答案 0 :(得分:1)
可能是因为您正在混合A1和RC地址引用。
尝试更改为:
AvgCell = Cells(myRow + 1, 14).Address(ReferenceStyle:=xlR1C1)
以及设置StdCell
地址的任何行答案 1 :(得分:1)
我调试了你的问题:
您的问题是您要返回一个地址" $ x $ y"。
SO
单元格(1,14).FormulaR1C1 = IF(RC [-1]> $ N $ 1 +,1,0)
不起作用CELLS()使用RANGE()
抛出错误替换我不相信Cells()可以使用它 - 我运行了一些基本的debuging并发现你可以起诉Range()。这是垃圾代码的一个例子。这不是你的最终答案(我没有看到你的所有代码),但你可以使用你的方法
ActiveCell.Formula = "=AVERAGE(M" & StartRow & ":M" & myRow - 1 & ")"
并使用相同的思维结构使RANGE()适合您的需要。
Sub test()
Dim AvgCell As String
AvgCell = ""
ActiveCell.Formula = "=AVERAGE(M" & StartRow & ":M" & myRow - 1 & ")"
AvgCell = Cells(myRow + 1, 14).Address
Debug.Print AvgCell
AvgCell = "=IF(" & " range(AvgCell) & " > " & AvgCell & " + " "
Cells(1, 14) = AvgCell
Debug.Print AvgCell
End Sub