根据单元格值隐藏/显示列

时间:2017-07-13 15:34:42

标签: excel vba excel-vba show-hide

我正在尝试隐藏列并显示包含两个不同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

1 个答案:

答案 0 :(得分: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