我有一个用户表单,可以输入我需要的所有信息,我们称其为“ SheetA”。现在,我在单独的工作表“ SheetB”中有一堆隐藏的行,并且希望根据SheetA中的条件取消隐藏某些行。
我敢肯定答案很简单,但这只是没有点击。
因此,这是一种对我有用的解决方案,没什么特别的。这是一个工作表子项,每次A1或B1中的值更改时都会触发该子表。希望能帮助到你。
Private Sub Worksheet_Change(ByVal Target As Range)
'Here you define what range in SheetA the data will be entered and the macro
'will only run if data is changed in that range.
Dim Area As Range
Set Area = Range("A1:B1")
'The "If Not Application..." checks means that IF data is changed THEN run.
If Not Application.Intersect(Area, Range(Target.Address)) Is Nothing Then
'Here you start your criteria for the conditions under which rows should be unhidden
'I called it "TestValue1" but it could be any value.
If Range("A1").Cells.Value = "TestValue1" And _
Range("B1").Cells.Value = "TestValue2" Then
Worksheets("SheetB").Rows("1:2").EntireRow.Hidden = False
Worksheets("SheetB").Rows("3:4").EntireRow.Hidden = False
ElseIf Range("A1").Cells.Value = "TestValue1" Then
Worksheets("SheetB").Rows("1:2").EntireRow.Hidden = False
ElseIf Range("B1").Cells.Value = "TestValue2" Then
Worksheets("SheetB").Rows("3:4").EntireRow.Hidden = False
End If
End If
End Sub
我还必须说,如果您要处理大量数据,则此宏相对较松散,因为它将需要您编写IF语句的负载。肯定有更有效的方法可以完成此任务,但是我还没有时间仔细地研究它。
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句