我是excel宏的新手,我想帮助隐藏一些列, 我在A2和A3中有2个下拉列表,两者都有是或否的选项。如果在A2中的下拉列表中选择了No选项,则如何隐藏C列,如果为A3中的下拉列表选择No选项,D列将消失。然后如果为两个下拉选择了是,则重新出现列。
答案 0 :(得分:2)
您必须使用活动。有关如何创建它们的简要教程,请访问:http://www.excel-easy.com/vba/events.html
在下面的示例中,我使用了worksheet_calculate
事件,每次计算工作表时都会触发该事件。如果是/否下拉列表更改未触发计算,您可以选择使用worksheet_selectionchange
。
Private Sub Worksheet_Calculate()
If ActiveSheet.Range("A2").Value = "Yes" Then
Columns(3).Hidden = False
ElseIf ActiveSheet.Range("A2").Value = "No" Then
Columns(3).Hidden = True
End If
If ActiveSheet.Range("A3").Value = "Yes" Then
Columns(4).Hidden = False
ElseIf ActiveSheet.Range("A3").Value = "No" Then
Columns(4).Hidden = True
End If
End Sub
答案 1 :(得分:0)
在工作表的代码表中尝试使用Worksheet_Change事件子过程。
Option Explicit
Private Sub Worksheet_Change(ByVal Target As Range)
If Not Intersect(Target, Range("A2:A3")) Is Nothing Then
On Error GoTo meh
Application.EnableEvents = False
columns(3).entirecolumn.hidden = cbool(lcase(Range("A2").value) = "no")
columns(4).entirecolumn.hidden = cbool(lcase(Range("A3").value) = "no")
End If
meh:
Application.EnableEvents = True
End Sub
我假设A2:A3中的“下拉列表”是数据验证列表。