Excel确定用户是否隐藏/取消隐藏列

时间:2017-10-04 13:18:58

标签: excel vba

我已经有了工作表,用户将隐藏/取消隐藏列以进行打印。在这些列中是某些单元格,当隐藏这些列时需要将这些单元格复制到可见区域,而当它们不被隐藏时,这些单元格会被反转。该功能可以很好地检测列'激活工作表时的可见状态。但是,在更改列状态时不会更新。我知道worksheet_calculate子将检测行可见性的变化,但不会检测列,也不会检测workheet_change中的变化。 Worksheet_SelectionChange似乎有错误(即使没有代码也选择多于选中)。建议?

Public Function Copy_Hidden_ChargeCode_Descriptions(ByRef sht As String)
On Error GoTo ErrorHandler
    Application.EnableEvents = False
    If Worksheets(sht).Columns("C:G").Hidden = False Then
        If Not IsEmpty(Worksheets(sht).Range("H4")) Then
            Worksheets(sht).Range("H1").Cut Worksheets(sht).Range("C1")
            Worksheets(sht).Range("H4:N9").Cut Worksheets(sht).Range("C4:H9")
        End If
    Else
        If IsEmpty(Worksheets(sht).Range("H4")) Then
            Worksheets(sht).Range("C1").Cut Worksheets(sht).Range("H1")
            Worksheets(sht).Range("C4:H9").Cut Worksheets(sht).Range("H4:N9")
        End If
    End If
    Application.EnableEvents = True
Exit Function

ErrorHandler:
    Debug.Print Err.Number, Err.Description
End Function

0 个答案:

没有答案
相关问题