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