我有一张工作表,其中第一个单元格 A1 根据用户的选择根据另一张工作表的输入给定一个数字 0 或 1。
如果单元格 A1 变为 0,则整行将被隐藏。
我正在使用下面的方法,它可以很好地自动/隐藏行。
我现在要做的是,当同一个单元格从 0 变为 1 时,取消隐藏该行。
感谢您的帮助!这是文件... http://jmp.sh/89BVI0A
Option Explicit
Private Sub Worksheet_Change(ByVal Target As Range)
If Not Intersect(Target, [A:A]) Is Nothing Then
Target.Rows.Hidden = UCase(Target.Value) = "0"
End If
End Sub
您可以找到电子表格的副本这里。
答案1
Sheet2
在模块中使用此代码
Option Explicit
Private Sub Worksheet_Calculate() 'Sheet2 Module
Const FC = "A" 'Filter Column
Dim lr As Long, filterCol As Range
lr = Me.Cells(Me.Rows.Count, FC).End(xlUp).Row 'Determine last cell in ColA
Set filterCol = Me.Range(Me.Cells(1, FC), Me.Cells(lr, FC)) 'ColA "UsedRange"
Application.EnableEvents = False
filterCol.Formula = "=Sheet1!A1" 'Update all formulas
filterCol.AutoFilter Field:=1, Criteria1:="1" 'Show only rows where ColA = 1
Application.EnableEvents = True
End Sub
Sheet1
这将捕获更新公式的用户交互Sheet2
它将隐藏所有具有值的0
行Sheet2.colA