用于隐藏/取消隐藏Excel中的列的宏

kic*_*iek 2 excel vba excel-vba

我创建了一个简单的宏来隐藏/取消隐藏Excel中的列(附在下面).它工作正常,但是,当在宏中的列范围内添加列时,应该隐藏的最后一列仍然是未隐藏的.为了使自己清楚:宏中的列范围是AM:BF.当我需要在此范围内添加列时,列BF保持不被隐藏.你能帮助我如何改进代码,以便初始范围的列保持隐藏以及添加的列?

With Columns("AM:BF")
    If .EntireColumn.Hidden = True Then
        .EntireColumn.Hidden = False
    Else
        .EntireColumn.Hidden = True
    End If
End With
Run Code Online (Sandbox Code Playgroud)

Tom*_*Tom 5

您需要为该列安装一个放置器.您可以在AM:BF列的顶行使用命名范围(如果在其中间添加一列,则会更改).您的代码可能看起来像

With ThisWorkbook.Sheets("MySheet").Range("NamedRange").EntireColumn
    .Hidden = Not .Hidden   
End With
Run Code Online (Sandbox Code Playgroud)