vba - 使用 VBA 根据更改的单元格值隐藏各种行
问题描述
我目前有以下编码:
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 行。 ..ETC.....
你能建议怎么做吗?
解决方案
您需要将该条件更改为仅在与单元格地址匹配时才执行代码,而不是在地址匹配时不执行代码。这将允许您添加与单元格地址匹配的更多条件。
我建议将硬编码的单元格地址(如“$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
推荐阅读
- unity3d - Unity 对撞机以一种奇怪且出乎意料的方式运行。如何解决?
- javascript - 是否需要在变量名的最后添加 ('s') 以在 Javascript 中创建数组?
- rust - 获取字符串中所有出现的子字符串的索引
- reactjs - 在 react-select 中以编程方式聚焦和选择值
- sql - 子查询在将其与不同表中的下一行进行比较时应返回 Null
- c# - Linq.dynamic.core IQueryable to SQL 语句
- swiftui - 如何将状态变量作为参数传递给 ObservableObject 类型的模型类?
- python-3.x - 计算二维图像中分支的厚度
- firebase - 颤振:从firebase获取最后一个文件
- encryption - Ansible 创建加密文件到现有的保险库