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

我试图隐藏一个列,并显示一个列有两个不同的Excel VBA(S)我的代码隐藏工作正常,但是当我无法回想列VBAbutton只是眨眼,什么都不做。 可能的原因是,当我试图显示列由于隐藏不可用。 我应该做些什么改变才能读出隐藏的列呢?

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 

您不能使用Find()来查找隐藏列中的内容。 你可以使用Match来代替。

未经testing:

 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