如何触发取消隐藏的行或列

时间:2015-11-04 08:58:14

标签: vba excel-vba events event-handling excel

某些用户隐藏列/行,在保存工作簿之前忘记取消隐藏它们。我希望通过

取消隐藏保存事件中的所有列/行来捕获它
Sub ReInvisible()
    ThisWorkbook.Worksheets(1).UsedRange.EntireRow.Hidden = False
    ThisWorkbook.Worksheets(1).UsedRange.EntireColumn.Hidden = False
End Sub

这工作正常,但我想通知用户现在所有隐藏的列/行都可见。现在我正在寻找一种触发取消隐藏列/行的方法,以便在至少一个列或行可见时我想要触发一个消息框。

VB.NET我会尝试编写自己的event,但在VBA我不知道如何解决方法。有没有人有想法?

1 个答案:

答案 0 :(得分:2)

这样的事情应该这样做:

Sub ReInvisible()
    Dim lVisColCount          As Long
    Dim lVisRowCount          As Long
    With ThisWorkbook.Worksheets(1).UsedRange
        lVisColCount = .Rows(1).SpecialCells(xlCellTypeVisible).Count
        lVisRowCount = .Columns(1).SpecialCells(xlCellTypeVisible).Count
        .EntireRow.Hidden = False
        .EntireColumn.Hidden = False
        If .Rows(1).SpecialCells(xlCellTypeVisible).Count <> lVisColCount Then MsgBox "Columns unhidden"
        If .Columns(1).SpecialCells(xlCellTypeVisible).Count <> lVisRowCount Then MsgBox "Rows unhidden"
    End With
End Sub