Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/mercurial/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
VBA Excel。如何处理基于私有子工作表的隐藏/取消隐藏行(ByVal目标作为范围)?_Excel_Vba - Fatal编程技术网

VBA Excel。如何处理基于私有子工作表的隐藏/取消隐藏行(ByVal目标作为范围)?

VBA Excel。如何处理基于私有子工作表的隐藏/取消隐藏行(ByVal目标作为范围)?,excel,vba,Excel,Vba,大家早上好 我是宏和VBA Excel的新手。我希望根据私有子工作表的更改(ByVal目标作为范围)来处理隐藏/取消隐藏行。我有以下代码事件 Private Sub Worksheet_Change(ByVal Target As Range) ActiveSheet.Unprotect Password:="avalon" If Target.Column = 2 Then Application.EnableEvents = False Cells(Target.Row, 5).Value

大家早上好

我是宏和VBA Excel的新手。我希望根据私有子工作表的更改(ByVal目标作为范围)来处理隐藏/取消隐藏行。我有以下代码事件

Private Sub Worksheet_Change(ByVal Target As Range)
ActiveSheet.Unprotect Password:="avalon"
If Target.Column = 2 Then
Application.EnableEvents = False
Cells(Target.Row, 5).Value = Date + Time
Application.EnableEvents = True
End If
ActiveSheet.Protect Password:="avalon"
End Sub
当我将数据从“B4”输入到“B21”时(有时完全填充,有时部分填充,这无关紧要),可以聚合此事件(隐藏/取消隐藏行)。也许,在“B21”中单击或在特定单元格中双击另一个事件,以激活从22到36的取消隐藏行,以便后续填充这些行。我希望澄清,如果不让我知道的话,请尝试澄清我需要根据事件发现正确的代码

提前谢谢。我保证学得快


您试图做的似乎是根据选择自动隐藏或显示行

可以使用范围对象上的.hidden来显示或隐藏行(使用EntireRow)。您只需要确定何时隐藏这些行。通过使用selectionChange事件,可以根据当前选择的行显示或隐藏行

下面的代码放在工作表对象上时将对您有所帮助

Private Sub Worksheet_SelectionChange(ByVal Target As Range)
Select Case Target.Row
    Case 21
        ActiveSheet.Range("B22:B36").EntireRow.Hidden = False
    Case 22 To 36
        ActiveSheet.UsedRange.EntireRow.Hidden = False
    Case Else
        ActiveSheet.Range("B22:B36").EntireRow.Hidden = True
End Select
End Sub
您可以创建更多案例并给出行号,选中这些行号后,行号将隐藏或显示其他范围


我希望我正确理解了你的问题

那么,如果在
B4
中输入数据,那么整个
4
行就会隐藏?您好。的确,我忘记了注释,从第2行到第21行总是取消隐藏。如果我需要第二个袋子标签,我需要取消隐藏22到36,然后再填充第二个袋子标签。我希望说得具体一些,可以理解。谢谢。戴维斯。我在单元格B4中输入一系列字母数字代码,以验证标签装运。例如190453--1 | 68 | 1。谢谢。我还是不太清楚你到底想要什么。填空。。。。当我这样做的时候,我希望发生。谢谢你,K.戴维斯,你的关心帮助我。我运行了另一个解决方案…实际上我已经从第22行隐藏到第51行。当我在默认情况下将可见行从第2行填充到第21行,之后我需要填充另一个行李标签字段(即#2),然后,我需要从第22行取消隐藏到第36行;可以填充这些行,如行李标签#1箱,我需要从第37行到第51行取消隐藏。想法是保持隐藏行李标签#2(第22行到第36行)和#3(第37行到第51行),至少我们需要取消隐藏每个标签。非常感谢…我正在尝试…干得好!这就是我一直在寻找的。再次非常感谢你。今天我学到了新东西。很棒的周末,用户8205642