У меня есть эта функция isVisible:
Public Function IsVisible(InRange As Range) As Boolean()
'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
' IsVisible
' This function returns an array of Boolean values indicating whether the
' corresponding cell in InRange is visible.
'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
Dim R As Range
Dim Arr() As Boolean
Dim RNdx As Integer
Dim CNdx As Integer
ReDim Arr(1 To InRange.Rows.Count, 1 To InRange.Columns.Count)
For RNdx = 1 To InRange.Rows.Count
For CNdx = 1 To InRange.Columns.Count
Set R = InRange(RNdx, CNdx)
If R.EntireRow.Hidden = True Or R.EntireColumn.Hidden = True Then
Arr(RNdx, CNdx) = False
Else
Arr(RNdx, CNdx) = True
End If
Next CNdx
Next RNdx
IsVisible = Arr
End Function
И она прекрасно работает, пока вы не примените автофильтр с vba:
Worksheets("Datos").Range("datos").AutoFilter Field:=pFindColPos(tag), Criteria1:="1"
Когда я выполню это, isVisible (независимо от того,ячейка автофильтрованная, видимая или нет) вызовет ошибку.Просто для ясности, если я применю автофильтр вручную, этого не произойдет.
Я уже некоторое время осматриваюсь, но не могу это исправить.Есть идеи?
Спасибо!