【问题标题】:Hide/Show a Column based on cell value根据单元格值隐藏/显示列
【发布时间】:2017-07-13 15:34:41
【问题描述】:

我正在尝试隐藏一列并显示具有两个不同 excel-VBA 的列 我的隐藏代码工作正常,但是当我无法调用该列时,VBA 按钮只是闪烁并且什么都不做。可能的原因是当我尝试显示由于隐藏而不可用的列时。我应该做哪些更改才能使其也读取隐藏列?

Sub SHOW()
Dim rngX1 As Range

    Set rngX1 = Worksheets("Sheet1").Range("A4:P4").Find(Range("G1"), LookIn:=xlValues, lookAt:=xlWhole)
    If Not rngX1 Is Nothing Then
        If MsgBox("Do you want to delete Column     " & Range("G1"), vbYesNo) = vbNo Then
            Exit Sub
        End If
    rngX1.EntireColumn.Hidden = False
    End If
End Sub

【问题讨论】:

  • 您可以使用示例数据的屏幕截图来更新此问题...目前尚不清楚您的代码问题与示例隔离的原因是什么

标签: vba excel show-hide


【解决方案1】:

您不能使用 Find() 来定位隐藏列中的内容。您可以改用 Match。

未经测试:

Sub SHOW()
    Dim m, sht
    Set sht = Worksheets("Sheet1")
    m = Application.Match(Range("G1"), sht.Range("A4:P4"), 0)

    If Not IsError(m) Then
        If MsgBox("Do you want to delete Column     " & _
                              Range("G1"), vbYesNo) = vbNo Then
            Exit Sub
        End If
        sht.Columns(m).Hidden = False
    End If
End Sub

【讨论】:

    猜你喜欢
    • 2023-04-03
    • 2012-07-15
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-01-17
    • 2022-10-23
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多