如果我在Excel中填充数据,如何显示下面隐藏的行?

时间:2017-05-09 20:36:38

标签: excel-vba vba excel

我必须在一张纸的两个不同区域填写信息。

输入用户数据的第一个区域是2到100,其中我只显示要填充的第一行(第2行)。当用户在任何列中输入数据时,必须显示第3行。然后,当用户在第3行输入数据时,必须显示第4行,依此类推。

第二个区域是从101到表格的末尾。因此,如果第3行到第100行没有数据,我需要在用户打开工作表时显示第101行。

1 个答案:

答案 0 :(得分:0)

隐藏行使用:

(this has to be in ThisWorkbook)
Worksheets("Sheet1").Rows(2).Hidden = True
Worksheets("Sheet1").Range(Rows(2), Rows(1000)).Hidden = True 'Range Hidden

这个makro将检查数据是否在Col 1中,如果第3行中没有数据,将显示第1-100行,并且在工作簿打开时将执行:

(this has to be in ThisWorkbook)
Sub Workbook_Open()
Dim lastRow
lastRow = ActiveSheet.Cells(Rows.Count, 1).End(xlUp).Row
If lastRow < 3 and lastRow <101 Then
    Worksheets("Sheet1").Range(Rows(3), Rows(100)).Hidden = True
    Worksheets("Sheet1").Range(Rows(101), Rows(1000)).Hidden = False
End If
End Sub

您可以使用在第1行到第100行更改某些内容时调用的函数,以使下一行可见:

(this has to be in the sheet that u want to watch i.e Sheet1 for me)
Private Sub Worksheet_Change(ByVal Target As Range)
    Dim RowChanged as Integer
    Dim KeyCells As Range

    Set KeyCells = Range(Rows(1), Rows(100))

    If Not Application.Intersect(KeyCells, Range(Target.Address)) _
           Is Nothing Then

       RowChanged = Target.Row 'Row that changed
       Worksheets("Sheet1").Rows(RowChanged + 1).Hidden = False
    End If
End Sub