excel - 之前的操作仍然存在

标签 excel vba

我正在尝试进行用户输入,其中有 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/

相关文章:

sql-server - 如何更改 Excel 中的日期,以便日期将在 SQL 查询中运行?

vba - 如何解决 Microsoft Access 中的编译错误?

excel - 是否可以在 VBA 中修复或声明单元格的类型?

vba - 在 vba 中填充单元格的更快方法

excel - 使用 DoCmd.TransferSpreadsheet 将 Excel 电子表格导入 Access 会创建重复项

vba - 使用按钮根据值播放Excel中的声音

excel - 试图在excel电子表格VB.Net上列出文件

excel - 如何将打印区域调整为一张纸

excel - Spreadsheetgear - 如何将焦点放在第一个工作表上

excel - VBA过滤唯一值并将其复制到新工作表