我正在使用当前的代码,但是我想对工作表中的很多行和工作簿中的其他工作表重复相同的任务。
我想重复的任务是基于yes / no下拉菜单取消隐藏和隐藏行。我知道可以在模块中创建代码并在每个工作表中调用它。会有所帮助。
谢谢!
"mainImage": {
"bucket": "bucketname",
"region": "eu-central-1",
"key": "public/b369e63d-1a40-4793-ae49-cecde042b1b9.jpg",
"__typename": "S3Object"
},
答案 0 :(得分:0)
也许使用Workbook.SheetChange event这样的事情。将此代码添加到ThisWorkbook
代码模块中。它假定下拉列表中没有其他单元格显示“是”或“否”。如果不是这种情况,可以很容易地对其进行修改。如果需要,还可以对其进行修改以仅处理某些工作表,而排除其他工作表。
Private Sub Workbook_SheetChange(ByVal Sh As Object, ByVal Target As Range)
If Target.CountLarge > 1 Then Exit Sub
Select Case Target.Value
Case "Yes"
Target.Offset(1).EntireRow.Hidden = True
Case "No"
Target.Offset(1).EntireRow.Hidden = False
End Select
End Sub
如您之前的answer的question中所述,您可以使用LCase
使其不区分大小写:
Select Case LCase(Target.Value)
Case "yes"
....
Case "no"
....
End Select
编辑:
已修改为根据其名称排除某些工作表:
Private Sub Workbook_SheetChange(ByVal Sh As Object, ByVal Target As Range)
If Target.CountLarge > 1 Then Exit Sub
Select Case Sh.Name
Case "Sheet2", "Sheet4" ' change to the names of the sheets to exclude
Exit Sub
End Select
If VarType(Target.Value) = vbString Then
Select Case LCase(Target.Value)
Case "yes"
Target.Offset(1).EntireRow.Hidden = True
Case "no"
Target.Offset(1).EntireRow.Hidden = False
End Select
End If
End Sub