xlR1C1格式的公式
我有一组独特的值位于sheet3,A1列。 我想使用countif函数来查看位于sheet3 column1单元格(a(i))上的值位于指定范围(即A2到列底部的位置)位于sheet4上的次数。 该公式将驻留在“sheet3”列5中,列5的每一行。
Set rngOfFindings = Sheets("Sheet4").Range(Range("A2"), Range("A2").End(xlDown)) Count of findings sheet 4 column 1 value in formula relative to A(i) Cells(5,i) = countif(rgnOfFindings, C[1],RC[-5])
任何解决scheme的解释将不胜感激(R1C!参考)。
macroslogging器没有帮助。 在EXCEL 2010中试用这个公式并没有一点亮点
如上所述,您试图将rngOfFindings设置为以Sheets("Sheet3").Range("A2")
和Sheets("Sheet3").Range("A2").End(xlDown)
结尾的一组单元格。Range Sheets("Sheet3").Range("A2").End(xlDown)
在Sheets("Sheet4")
,这是不可能的。
根据你的叙述( “公式将存在于”第3页“第5列,对于第5列的每一行 )”, Cells(5, i)
似乎具有切换的行和列参数。 语法是Cells(<row number>, <column letter or number>)
。
您是否想要评估VBA中的Countif
并提供结果或将公式input到单元格中,这并不完全清楚。 我会尽量提供这两种情况。 如果你想VBA评估公式,你需要使用Application.WorksheetFunction.Countif(...)
或更简单的Application.Countif(...)
。
C[1],RC[-5]
应该是RC[-4]
。 如果您移动E列左侧的5列,请离开工作表。
这里有一些修改的build议。
Dim i As Long, lr As Long, rngOfFindings As Range With Sheets("Sheet4") 'note the prefixing periods that make each of the three .Range's below to Sheet4 Set rngOfFindings = .Range(.Range("A2"), .Range("A2").End(xlDown)) End With 'set values by evaluating the CountIf here With Sheets("Sheet3") lr = .Cells(Rows.Count, "A").End(xlUp).Row For i = 2 To lr .Cells(i, 5) = Application.CountIf(rngOfFindings, .Cells(i, 1).Value) Next i End With 'set formulas on the worksheet With Sheets("Sheet3") lr = .Cells(Rows.Count, "A").End(xlUp).Row 'formula as A1 cell reference style '.Range("E2:E" & lr).Formula = "=COUNTIF(" & rngOfFindings.Address(1, 1, xlA1, True) & ", A2)" 'formula as A1 cell reference style .Range("E2:E" & lr).FormulaR1C1 = "=COUNTIF(" & rngOfFindings.Address(1, 1, xlR1C1, True) & ", RC[-4])" End With Set rngOfFindings = Nothing