所以我的问题是:我在一个工作表(Sheet1)上使用特定代码:
Private Sub Worksheet_Change(ByVal Target As Range)
Select Case Range("B24")
Case "Standard"
Sheets("Sheet2").Visible = False
Rows("29:47").EntireRow.Hidden = False
Case "Medium"
Sheets("Sheet2").Visible = True
Rows("29:47").EntireRow.Hidden = True
Case "High"
Sheets("Sheet2").Visible = True
Rows("29:47").EntireRow.Hidden = True
Case Else
Sheets("Sheet2").Visible = False
Rows("29:47").EntireRow.Hidden = True
End Select
End Sub
一旦Sheet2变得可见(基于上述内容),我将此代码专门添加到Sheet2中:
Private Sub Worksheet_Change(ByVal Target As Range)
Select Case Range("B14")
Case "Medium"
Rows("6:12").EntireRow.Hidden = True
Case Else
Rows("6:12").EntireRow.Hidden = False
End Select
End Sub
问题是由= Sheet1!B24组成的单元格(Sheet2)B14不与Sheet2上的代码交互,因此不会隐藏/取消隐藏行。我需要物理选择= Sheet1!B24并在其中单击Enter,然后隐藏/取消隐藏行。请告知为什么它不会自动发生。
PS。计算操作设置为自动
由于
答案 0 :(得分:1)
公式不会触发“更改”事件。请改用Worksheet_Calculate
事件:
Private Sub Worksheet_Calculate()
Application.EnableEvents = False
Select Case Range("B24")
Case "Standard"
Sheets("Sheet2").Visible = False
Rows("29:47").EntireRow.Hidden = False
Case "Medium", "High"
Sheets("Sheet2").Visible = True
Rows("29:47").EntireRow.Hidden = True
Case Else
Sheets("Sheet2").Visible = False
Rows("29:47").EntireRow.Hidden = True
End Select
Application.EnableEvents = True
End Sub
重要提示:请注意在代码之前禁用事件 - 这是为了防止无限循环。