Ich würde die SpecialCells
Eigenschaft überhaupt nicht verwenden. Durchlaufen Sie einfach jede Zeile in der UsedRange
und überprüfen Sie die Hidden
Eigenschaft, wie Sie gehen.
nicht sicher, welche Sprache Sie verwenden, aber hier ist ein Beispiel in VBA:
Dim rowIndex As Range
With Worksheets("Sheet1")
For Each rowIndex In .UsedRange.Rows
If (rowIndex.Hidden) Then
' do nothing - row is filtered out
Else
' do something
End If
Next rowIndex
End With
Jede Zeile (oder vielmehr jeden Range
Objekt durch rowIndex
verwiesen) alle Spalten einschließlich der versteckten enthalten. Wenn Sie ermitteln müssen, ob eine Spalte ausgeblendet ist, dann überprüfen Sie die Hidden
Eigenschaft aber nicht vergessen, dass dies nur für ganze Spalten oder Zeilen gilt:
Dim rowIndex As Range
Dim colNumber As Integer
With Worksheets("Sheet1")
For Each rowIndex In .UsedRange.Rows
If (rowIndex.Hidden) Then
' do nothing - row is filtered out
Else
For colNumber = 1 To .UsedRange.Columns.Count
' Need to check the Columns property of the Worksheet
' to ensure we get the entire column
If (.Columns(colNumber).Hidden) Then
' do something with rowIndex.Cells(1, colNumber)
Else
' do something else with rowIndex.Cells(1, colNumber)
End If
Next colNumber
End If
Next rowIndex
End With
Vielen Dank. – PerlDev