根据另一个工作表中的单元格隐藏一个工作表中的列 - Excel VBA

时间:2016-07-20 11:52:26

标签: excel vba excel-vba

在excel工作簿中我有sheet1和sheet2。

Sheet1 中,我有一个动态变化的单元格(单元格A1)。 在 Sheet2 中,我有一个单元格(B1),它复制Sheet1中单元格A1的值。 在工作表2 单元格将在B1中的值为0时隐藏。

link image

以下是来自sheet2的VBA代码

Private Sub Worksheet_Change(ByVal Target As Range)

    If Range("B1").Value = "0" Then
        Columns("E:I").EntireColumn.Hidden = True
    Else
        Columns("E:I").EntireColumn.Hidden = False
    End If

End Sub

问题是,当我更改 Sheet1 上的值时, Sheet2 上没有任何反应,我不知道原因。

2 个答案:

答案 0 :(得分:1)

使用表1计算事件中的以下代码,

Private Sub Worksheet_Calculate()
   If Range("B1").Value = "0" Then
      Sheet2.Columns("E:I").EntireColumn.Hidden = True
   Else
      Sheet2.Columns("E:I").EntireColumn.Hidden = False
   End If
End Sub

并在sheet1-B1单元格中进行一些计算(比如= 0 + 0),如果结果为0,那么它将隐藏Sheet2中的E:I列。

答案 1 :(得分:0)

sheet1上使用的代码隐藏了sheet2上的列

Private Sub Worksheet_Change(ByVal Target As Range)

    If Range("A1").Value = "0" Then
        Sheet2.Columns("E:I").EntireColumn.Hidden = True
    Else
        Sheet2.Columns("E:I").EntireColumn.Hidden = False
    End If

End Sub

工作得很好。感谢小费vanathaiyan