首页 > 解决方案 > VBA 根据范围内的单元格值自动隐藏和取消隐藏列。但是需要在顶部添加一个额外的条件

问题描述

我有一个当前自动隐藏或取消隐藏基于特定范围的单元格的代码。目前,每次更改单元格时它都会循环播放,并且我每次都会获得 5-10 秒的蓝色轮子。我希望它根据值是否更改然后运行代码从不同的工作表中提取,如果特定单元格中的值没有更改,则代码不会运行。

所以基本上基于下面的代码。我喜欢代码来查看表格 1 上的特定单元格,单元格 L19,如果该数字发生变化,那么下面的代码将自动启动,如果表格 1 L19 单元格没有改变下面的代码不运行。

目前我的代码是这样的:

Sub Worksheet_Selectionchange(ByVal Target As Range)
    Dim ws As Worksheet
    Dim r1 As Range
 Application.ScreenUpdating = True
    Set ws = Sheet6
  ActiveSheet.Unprotect "Password"
    For Each r1 In ws.Range("G19:AD19")
        If r1.Value = "" Then
            r1.EntireColumn.Hidden = True
            Else
            r1.EntireColumn.Hidden = False
        End If
    Next r1
   ActiveSheet.Protect "Password"
   End Sub

标签: excelvba

解决方案


推荐阅读