使用如果然后为整个工作簿来查看平均值在vba

我试图创build一个if然后macros,这将允许我search整个工作簿,并带回cells(PRow,3)中的值小于或等于5 range ("B26").value中的工作表的名称range ("B26").value

到目前为止,我所拥有的一个似乎并没有带回所有符合标准的结果。

 Dim PRow As Long PRow = 8 With wsAddPatient For Each ws In ActiveWorkbook.Worksheets If ws.Range("B26").Value <= 5 _ And ws.Range("B26").Value <> "" Then .Cells(PRow, 3).Value = ws.Name PRow = PRow + 1 End If Next End With 

不要尝试testing空白单元格或包含文本的数字值。

 Dim PRow As Long PRow = 8 With wsAddPatient For Each ws In ActiveWorkbook.Worksheets If IsNUmeric(ws.Range("B26").Value2) Then If ws.Range("B26").Value2 <= 5 Then .Cells(PRow, 3) = ws.Name PRow = PRow + 1 End If End If Next End With 

做一个数值单元格的testing与其他testing分开,因为多个testing都将被评估。

这应该导致types不匹配错误是你试图比较文本; 直到您确信您已通过适当的错误控制覆盖所有可能性为止。