VBA查找某些单元格中是否存在值

VBA查找某些单元格中是否存在值,vba,excel,Vba,Excel,我试图找出一个值是否只存在于这些特定的单元格中。我已经拼凑了来自不同来源的代码,但我似乎无法让它工作 Resources = ActiveWorkbook.Sheets("Sheet1").Range("A1,A4,A6,A8,A10") MsgBox Application.WorksheetFunction.CountIf(Range(Resources, 0), ">0") 根据我为Resources变量设置的Dim的不同,我似乎会出现各种错误,我不太确定,0的作用是什么 任何帮助

我试图找出一个值是否只存在于这些特定的单元格中。我已经拼凑了来自不同来源的代码,但我似乎无法让它工作

Resources = ActiveWorkbook.Sheets("Sheet1").Range("A1,A4,A6,A8,A10")
MsgBox Application.WorksheetFunction.CountIf(Range(Resources, 0), ">0")
根据我为
Resources
变量设置的
Dim
的不同,我似乎会出现各种错误,我不太确定
,0
的作用是什么


任何帮助都将不胜感激。

这就是你正在尝试的吗

Sub Sample()
    Dim Resources As Range, aCell As Range
    Dim n As Long

    Set Resources = ActiveWorkbook.Sheets("Sheet1").Range("A1,A4,A6,A8,A10")

    For Each aCell In Resources
        If aCell.Value > 0 Then n = n + 1
    Next

    MsgBox n
End Sub

这就是你想要的吗

Sub Sample()
    Dim Resources As Range, aCell As Range
    Dim n As Long

    Set Resources = ActiveWorkbook.Sheets("Sheet1").Range("A1,A4,A6,A8,A10")

    For Each aCell In Resources
        If aCell.Value > 0 Then n = n + 1
    Next

    MsgBox n
End Sub

Resources变量之前添加
Set
,方法如下:
Set Resources=…
,并确保它声明为
范围类型
,方法如下:
Dim Resources as Range
。会发生什么?如果不能有不连续的ranges@KazJaw这是我最初的设置,我得到的错误是运行时错误“1004”:无法获取WorksheetFunction类的CountIf属性。我猜这与@SiddharthRout的评论有关?有什么建议吗?我认为@SiddharthRout是对的。您将在
CountIf函数中遇到额外的错误,您将通过以下方式对其进行改进:
…CountIf(参考资料,“>0”)
。但首先要使范围连续。在
资源变量之前添加
Set
,方法如下:
Set Resources=…
,并确保它声明为
range type
,方法如下:
Dim Resources as range
。会发生什么?如果不能有不连续的ranges@KazJaw这是我最初的设置,我得到的错误是运行时错误“1004”:无法获取WorksheetFunction类的CountIf属性。我猜这与@SiddharthRout的评论有关?有什么建议吗?我认为@SiddharthRout是对的。您将在
CountIf函数中遇到额外的错误,您将通过以下方式对其进行改进:
…CountIf(参考资料,“>0”)
。但首先要让射程连续。太棒了,这太完美了!非常感谢你!太棒了,太完美了!非常感谢你!