我的名称范围有5行6列。我想隐藏5行中的3行。我只能得到其中一行。我如何指定我需要隐藏的其他行?
Private Sub Worksheet_Change(ByVal Target As Range)
Dim rowCounter As Long
Dim theTargetRow, initialStartRow As String
initialStartRow = "113"
theTargetRow = initialStartRow + Target.Value
If Target.Value = "---" Then
Range("myNameRange").Rows.Hidden = True
Else
'Range("myNameRange").Rows.Hidden = True
For rowCounter = theTargetRow To initialStartRow + 1 Step -1
Rows(rowCounter).EntireRow.Hidden = False
Next
End If
End Sub
编辑:我通过从需要隐藏的行中删除我的名字范围来实现它。
答案 0 :(得分:0)
由于您提供的信息有限,我只能向您提供有限的信息(更具体地说,下面的代码正在搜索您范围内的每个单元格,因为我不确定列N/A
位于哪个位置)。
Option Explicit
Sub Test()
Dim Target As Range, Cell As Range
Set Target = Range("myNameRange")
For Each Cell In Target
If Cell.Value = "N/A" Then
Cell.EntireRow.Hidden = True
Else
Cell.EntireRow.Hidden = False
End If
Next Cell
End Sub
答案 1 :(得分:0)
隐藏指定范围的第i行...
Sheets("Sheet1").Range("myNameRange").Rows(i).EntireRow.Hidden = True
答案 2 :(得分:0)
这将隐藏命名范围中的前三行,但是通过您发现适合您的解决方案,您似乎只想隐藏行 - 不一定在命名范围内。
Public Sub Test()
Dim rCell As Range
Dim i As Long
For Each rCell In Range("myNameRange").Rows
If i < 3 Then
rCell.EntireRow.Hidden = True
Else
Exit For
End If
i = i + 1
Next rCell
End Sub