1

Тема: VBA Excel object model: определение скрытогой ячейки

Здравствуйте,

Имеется большая таблица Excel, часть столбцов скрыта. Как средствами object model определить, скрыта конкретная ячейка или нет? Просмотрел  Office VBA Reference Excel Object model, не нашел. Полагаю, не там искал

2

Re: VBA Excel object model: определение скрытогой ячейки

equipment66, для ячейки — никак нельзя, потому что скрывать можно только столбцы или строки целиком:

Option Explicit

Sub Sample()
    Dim objRange As Range
    
    For Each objRange In ActiveSheet.UsedRange
        Debug.Print objRange.Address, vbTab, objRange.Columns.Item(1).Hidden, objRange.Rows.Item(1).Hidden
    Next objRange
End Sub

Но Вы можете написать свою функцию, которая будет проверять, находится ли конкретная ячейка в скрытом столбце или строке (если в переданном диапазоне больше одной ячейки — то первая ячейка диапазона) и возвращать булево значение, например:

Option Explicit

Sub Sample2()
    Debug.Print IsHiddenCell(ActiveSheet.Range("$B$10"))
    Debug.Print IsHiddenCell(ActiveSheet.Range("$C$10"))
    Debug.Print IsHiddenCell(ActiveSheet.Range("$C$11"))
    
    ' И даже:
    Debug.Print IsHiddenCell(ActiveSheet.Range("$C$10:$D$20"))
End Sub

Function IsHiddenCell(objRange As Range)
    If Not objRange Is Nothing Then
        With objRange.Item(1)
            If .Columns.Item(1).Hidden Or .Rows.Item(1).Hidden Then
                IsHiddenCell = True
            Else
                IsHiddenCell = False
            End If
        End With
    Else
        IsHiddenCell = False
    End If
End Function

3

Re: VBA Excel object model: определение скрытогой ячейки

alexii, спасибо. Пошел разбираться