在vba公式中使用单元格地址

时间:2015-05-14 13:15:11

标签: excel vba excel-vba

我试图在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)"

2 个答案:

答案 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