Hide/Show 基于单元格值的列
Hide/Show a Column based on cell value
我试图隐藏一个列并显示一个包含两个不同 excel-VBA(s) 的列
我的隐藏代码工作正常,但当我无法回忆起该列时,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
您不能使用 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
我试图隐藏一个列并显示一个包含两个不同 excel-VBA(s) 的列 我的隐藏代码工作正常,但当我无法回忆起该列时,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
您不能使用 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