下午全部!
我正在使用各种下拉列表的结果隐藏电子表格中的相关行,因为下拉列表中的值已更改(因此会自动更改)。
通过一些谷歌搜索,我遇到了下面的设置很好用,虽然我在尝试从另一个工作表中指定下拉列表单元格时遇到了麻烦。
Private Sub Worksheet_Change(ByVal Target As Range)
Dim disabled As Boolean
If Range("D2") = "Yes" Then
disabled = True
End If
If disabled Then
Rows("3:8").EntireRow.Hidden = False
Else
Rows("3:8").EntireRow.Hidden = True
End If
End sub
使用以下功能并没有奏效,谷歌搜索解决方案让我陷入了许多死胡同:
If Sheets("Topsheet").Range("D27") = "Yes" Then
在声明变量时我是否无法使用相邻工作表中的值,因为它是私有子?
任何帮助都会非常感激,因为我被困了几个小时!
答案 0 :(得分:0)
您的代码可以大规模简化。尝试使用此功能(如果表单名称与您的名称不一致,您必须更新表单名称)
Private Sub Worksheet_Change(ByVal Target As Range)
Sheets("SheetWithRowsToBeHidden").Rows("3:8").EntireRow.Hidden = IIf(Me.Range("D27").Value2 = "Yes", True, False)
End Sub
另外,你在哪里放这个代码?您是将它放在模块中还是在Sheet对象中?它需要位于具有下拉列表的Sheet对象中。