我想篩選一個特定條件,在這種情況下任何類似服務代碼我正在篩選此列內的名稱,而不是A:一個。代碼的第一部分工作正常,If語句就是我遇到問題的地方。我創建了If語句,如果有一個實際的數據行顯示爲-SERVICE CODE的過濾器,那麼在這種情況下,如果至少有一行被過濾,它應該顯示「Data」問題在於即使Filtered時沒有顯示任何內容,它也會顯示「Data」消息。Excel VBA - 如果自動篩選器不包含任何記錄,MsgBox
我想弄清楚如何沒有數據的消息顯示正確,當沒有什麼是符合篩選條件。
謝謝
Sub Filter results()
Dim rng As Range, res As Variant
Set rng = ActiveSheet.AutoFilter.Range.Rows(1)
res = Application.Match("Errors", rng, 0)
rng.AutoFilter Field:=res, Criteria1:="*-SERVICE CODE*"
If rng.SpecialCells(xlCellTypeVisible).Count > 1 Then
MsgBox "Data"
Else
MsgBox "No Data"
End If
End Sub()
所以你總是在'rng'中有單元格?如果是這樣的話,Count函數返回單元格的數量,而不管它們中是否有數據?不確定,只是一個建議。你可以評論'rng.SpecialCells(xlCellTypeVisible)'返回什麼? – AER
看起來'rng'是標題行,因此它總是可見的,並且總是返回大於1.將您正在計數的可見單元格的範圍更改爲'A:A',它應該可以正常工作。 –
@AER你好,它只返回標題行,如果條件沒有匹配。 – MrLockett