我正在尝试进行用户输入,其中有 2 个输入单元格 A1 和单元格 B1。对于单元格 A1 的操作,我的代码如下:
If target.Address = "$A$1" Then
Select Case Sheets("Input").Range("A1")
Case "Hide1"
Range("A3:A5").EntireRow.Hidden = True
Case "Hide2"
Range("A7:A9").EntireRow.Hidden = True
End Select
End If
对于单元格 A2 的操作,我的代码如下:If target.Address = "$A$2" Then
Select Case Sheets("Input").Range("A2")
Case "Hide3"
Range("A11:A13").EntireRow.Hidden = True
Case "Hide4"
Range("A15:A17").EntireRow.Hidden = True
End Select
End If
如何确保更改 A1 后,即使更改 A2 后,操作(隐藏的行)也会继续?例如。我将 A1 更改为“隐藏 1”,第 3-5 行被隐藏。接下来,我将 A2 更改为“隐藏 3”,我希望第 11-13 行被隐藏,而第 3-5 行继续被隐藏。
最佳答案
我看不出问题。将 A1 更改为“Hide1”并将 A2 更改为“Hide3”后,第 3-5 行保持隐藏状态。看看代码的另一部分。
我可以想象您的代码可能在 SelectionChange 事件中,而它应该在 Change 事件中:
Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Address = "$A$1" Then
Select Case Sheets("Input").Range("A1")
Case "Hide1"
Range("A3:A5").EntireRow.Hidden = True
Case "Hide2"
Range("A7:A9").EntireRow.Hidden = True
Case Else
Range("A3:A5").EntireRow.Hidden = False
Range("A7:A9").EntireRow.Hidden = False
End Select
Else
If Target.Address = "$A$2" Then
Select Case Sheets("Input").Range("A2")
Case "Hide3"
Range("A11:A13").EntireRow.Hidden = True
Case "Hide4"
Range("A15:A17").EntireRow.Hidden = True
Case Else
Range("A11:A13").EntireRow.Hidden = False
Range("A15:A17").EntireRow.Hidden = False
End Select
End If
End If
End Sub
关于excel - 之前的操作仍然存在,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/70907233/