我目前有以下编码:
Private Sub Worksheet_Change(ByVal Target As Range)
Dim arCases As Variant
Dim res As Variant
arCases = Array("Term", "Indeterminate", "Transfer", "Student", "Term extension", "As required", "Assignment", "Indéterminé", "Mutation", "Selon le besoin", "Terme", "prolongation du terme", "affectation", "Étudiant(e)")
If Target.Address <> "$C$37" Then Exit Sub
res = Application.Match(Target, arCases, 0)
If IsError(res) Then
Rows("104:112").Hidden = False
Else
Rows("104:112").Hidden = True
End If
End Sub
我遇到的问题是,我需要添加此内容,例如,如果单元格C37中的值是“ X”,则隐藏行42:49;如果单元格H4中的值是“ Y”,则行101:114隐藏了...等等....
您能建议如何做吗?
答案 0 :(得分:0)
您需要更改该条件以仅在匹配单元格地址的情况下执行代码,而不是不除非地址匹配才执行代码。这将允许您添加与单元格地址匹配的其他条件。
我建议将硬编码的单元格地址(例如“ $ C $ 37”)更改为命名范围,理想情况下,该命名范围在整个工作簿中应该是唯一的。
arCases = Array("Term", "Indeterminate", "Transfer", "Student", "Term extension", "As required", "Assignment", "Indéterminé", "Mutation", "Selon le besoin", "Terme", "prolongation du terme", "affectation", "Étudiant(e)")
If Target.Address = "$C$37" Then
res = Application.Match(Target, arCases, 0)
If IsError(res) Then
Rows("104:112").Hidden = False
Else
Rows("104:112").Hidden = True
End If
ElseIf Target.Address = "$H$4" Then
' Do something else
End If
End Sub