Excel 使用多个下拉列表隐藏列
我是excel宏新手,我想了解一些隐藏某些列的帮助,Excel 使用多个下拉列表隐藏列,excel,drop-down-menu,vba,Excel,Drop Down Menu,Vba,我是excel宏新手,我想了解一些隐藏某些列的帮助, 我在A2和A3中有两个下拉列表,都有是或否选项。如果A2中的下拉列表中选择了否选项,我如何使C列隐藏,如果A3中的下拉列表中选择了否选项,如何使D列消失。然后,如果两个下拉列表都选择了“是”,则会重新显示列。请尝试工作表代码表中的“工作表更改事件”子过程 Option Explicit Private Sub Worksheet_Change(ByVal Target As Range) If Not Intersect(Targe
我在A2和A3中有两个下拉列表,都有是或否选项。如果A2中的下拉列表中选择了否选项,我如何使C列隐藏,如果A3中的下拉列表中选择了否选项,如何使D列消失。然后,如果两个下拉列表都选择了“是”,则会重新显示列。请尝试工作表代码表中的“工作表更改事件”子过程
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中的“下拉列表”是数据验证列表。您必须使用事件。有关如何创建它们的简短教程,请访问: 在下面的示例中,我使用了
工作表\u calculate
事件,每次计算工作表时都会触发该事件。如果是/否下拉列表更改不会触发计算,您可以选择使用工作表\u selection change
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
非常感谢,你的是/否隐藏/非隐藏逻辑可能会颠倒。”如果选择了“否”选项,则隐藏C列“True!”!很抱歉。刚刚编辑过。