通过透视表VBA循环以识别零值

通过透视表VBA循环以识别零值,vba,excel,for-loop,pivot-table,Vba,Excel,For Loop,Pivot Table,我试图找到一种方法来循环上面的透视表。我的三行标签是“桌面”、“产品类型”和“产品ID”。我要做的是识别B列中“产品类型”的条目是否等于0,突出显示B列中等于0的“产品ID” 到目前为止,我的尝试是(我意识到这是一场混乱,我不太擅长VBA) 首先,对于“lrow”,我得到了一个运行时错误,我不理解,因为我以前使用过这段代码。在那之后,我不确定循环是否会工作 非常感谢您的帮助 必须使用Range.Value属性来检查某个范围是否包含数字零。VBA中这样的范围是一个对象,因此无法与数字进行比较(必须

我试图找到一种方法来循环上面的透视表。我的三行标签是“桌面”、“产品类型”和“产品ID”。我要做的是识别B列中“产品类型”的条目是否等于0,突出显示B列中等于0的“产品ID”

到目前为止,我的尝试是(我意识到这是一场混乱,我不太擅长VBA)

首先,对于“lrow”,我得到了一个运行时错误,我不理解,因为我以前使用过这段代码。在那之后,我不确定循环是否会工作


非常感谢您的帮助

必须使用Range.Value属性来检查某个范围是否包含数字零。VBA中这样的范围是一个对象,因此无法与数字进行比较(必须指定该范围的哪个属性与零进行比较)

关于lrow代码段,请尝试删除Rows.Count之前的点

With ws
    lRow = .Range("B" & Rows.Count).End(xlUp).Row

在使用ws时,ws仍然是一个空变量。。。我发现你错过了现场设置ws=ActiveSheet,谢谢。仍然不确定循环,出现不匹配错误。不确定为什么语法“For Each PvItem In PvField.PivotItems If Range(“B2:B”&lRow)=0 Then”不起作用?为什么在循环中的任何位置都不引用PvItem对象的情况下循环使用数据透视项?也许你应该在范围内的单元格中循环,或者实际使用透视项的值进行比较,你就不需要使用lrow了。我不完全明白吗?我试图识别A列中的透视项,B列中对应的值为0。这就是为什么我要循环使用透视项。感谢对对象/属性的解释,我并不知道这一点(显示了我的VBA能力)。但是代码本身仍然会出现不匹配错误?
For Each PvItem In PvField.PivotItems
    If Range("B2:B" & lRow).Value = 0 Then

       For Each PvItemL In PvField2.PivotItems
       If Range("B2:B" & lRow).Value = 0 Then

           LabelRange.Interior.Color = vbYellow

        End If
    End If

Next
With ws
    lRow = .Range("B" & Rows.Count).End(xlUp).Row