我想要一个下拉列表,其名称例如计算、其他,通过选择一个,我可以将某些行隐藏在另一张纸上。 有没有简单的方法可以做到这一点?
我尝试了一些代码,但我不明白语法,因为我从另一张纸中提取单元格值并更改为另外三张纸
Private Sub Worksheet_Change(ByVal Target As Range)
Sheets("Project&Site_Details").Rows("4:8").EntireRow.Hidden = IIf(Me.Range("c4").Value2 = "Server Migration", True, False)
End Sub
这个人一直问我宏名称。
因此,基本思想是单元格 C4 上的工作表 Project&Site_Details 上的下拉菜单,其中包含三个名称“服务器迁移”、“数据类型”、“其他”。并让他们根据工作表隐藏或显示三个不同工作表上的行。如预检查表、后检查表
我使用此代码让它工作
Private Sub worksheet_change(ByVal target As Range)
Dim KeyCells As Range
Set KeyCells = Range("C4")
If Not Application.Intersect(KeyCells, Range(target.Address)) Is Nothing Then
If KeyCells = "Server Migration" Then
Sheets(3).Rows("4:4").Hidden = True
Sheets(3).Rows("5:5").Hidden = True
Else
Sheets(3).Rows("4:4").Hidden = False
Sheets(3).Rows("5:5").Hidden = False
End If
If KeyCells = "Add-On" Then
Sheets(3).Rows("10:11").Hidden = True
Else
Sheets(3).Rows("10:11").Hidden = False
End If
End If
End Sub
有没有更简单的方法?
评估单个值时请考虑使用
Select Case
。观看:Excel VBA 简介第 14 部分 - 选择案例语句
Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Address(False, False) = "C4" Then
Select Case Target.Value
Case "Server Migration"
Sheets(3).Rows("4:4").Hidden = True
Sheets(3).Rows("5:5").Hidden = True
Case "Add-On"
Sheets(3).Rows("10:11").Hidden = True
Case Else
Sheets(3).Rows("4:4").Hidden = False
Sheets(3).Rows("5:5").Hidden = False
Sheets(3).Rows("10:11").Hidden = False
End Select
End If
End Sub