Excel VBA:countif不工作-范围错误?

Excel VBA:countif不工作-范围错误?,excel,vba,Excel,Vba,我正在尝试循环我的工作表,以计数任何重复项。UniqueId是范围的集合 Dim uniqueId As New Collection For i = 1 To numSets Dim rng As Range 'Find Unique Id Range Set rng = Application.InputBox(("In Data Set " & i & ", please select range of the unique identifier.

我正在尝试循环我的工作表,以计数任何重复项。UniqueId是范围的集合

Dim uniqueId As New Collection
For i = 1 To numSets
    Dim rng As Range

    'Find Unique Id Range
    Set rng = Application.InputBox(("In Data Set " & i & ", please select range of the unique identifier. (Do not include header)"), "Obtain Unique ID Column", Type:=8)
    uniqueId.Add rng
Next

 For i = 1 To numSets
    For j = 2 To lastcell
       If (Application.WorksheetFunction.CountIf(Range(uniqueId(i).Address), Cells(j, 1).Value) > 1) Then
            If (Cells(j, numSets * numVar + numVar + 3).Value <> "") Then
                Cells(j, numSets * numVar + numVar + 3).Value = Cells(j, numSets * numVar + numVar + 3).Value & ", Review- this is a duplicate in Data Set " & i
            Else
                Cells(j, numSets * numVar + numVar + 3).Value = "Review- this is a duplicate in Data Set " & i
            End If
        End If
    Next
Next
Dim uniqueId作为新集合
对于i=1到numSets
变暗rng As范围
'查找唯一Id范围
Set rng=Application.InputBox((“在数据集“&i&”中,请选择唯一标识符的范围(不包括标题)”,“获取唯一ID列”,类型:=8)
唯一标识。添加rng
下一个
对于i=1到numSets
对于j=2到最后一个单元格
如果(Application.WorksheetFunction.CountIf(范围(uniqueId(i).Address),单元格(j,1).Value)>1),那么
如果(单元格(j,numSets*numVar+numVar+3.Value“”),则
单元格(j,numSets*numVar+numVar+3)。值=单元格(j,numSets*numVar+numVar+3)。值和“,检查-这是数据集中的重复项”&i
其他的
单元格(j,numSets*numVar+numVar+3)。Value=“查看-这是数据集中的重复项”&i
如果结束
如果结束
下一个
下一个

计数if不起作用,因为它应该有重复项,但它从未起作用。我认为问题可能归结为范围(uniqueId(I).Address),但我不确定。

如果没有数据,就无法重现问题,因为它的第一个参数需要一个范围,而不是范围的字符串地址。只需执行
CountIf(uniqueId(i),Cells(j,1).value)
并查看这是否会清除它。需要知道uniqueId(i).Address在计数错误时的值。@jnevil
Range(uniqueId(i).Address)
是一个范围。这是一种迂回的说法,表示
uniqueId(i)
,但它是一个范围。@GSerg哦。我明白你在说什么。那绝对是迂回的。不过,如果收藏中有不同的纸张,这将导致各种问题。阿克。