使用vba公式中的单元格地址
我试图在IF公式中使用单元格地址,我得到一个错误消息。 我将AvgCell / StdCell定义为string,而我的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)"
这可能是因为你混合了A1和RC地址引用。
尝试改变这个:
AvgCell = Cells(myRow + 1, 14).Address(ReferenceStyle:=xlR1C1)
也可以用来设置StdCell的地址
我debugging了你的问题:
你的问题是你正在返回一个地址“$ x $ y”。
所以
单元格(1,14).FormulaR1C1 = IF(RC [-1]> $ N $ 1 +,1,0)
不起作用CELLS()抛出错误replace与RANGE()
我不相信Cells()可以工作 – 我进行了一些基本的debugging,发现你可以起诉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