名前付き範囲に少し問題があります。
異なるシートに複数の名前付き範囲があります。これらすべての範囲をvbaで非表示または表示したいと思います。名前付き範囲の例: r1_name1 。別のシートの 2 番目は r1_name2 です。したがって、すべての範囲は前に同じコード r1_ で始まります。
r1_ で始まるすべての範囲をループして非表示/表示するにはどうすればよいですか?
名前付き範囲をループするには:
Sub tgr()
Dim NamedRange As Name
For Each NamedRange In ActiveWorkbook.Names
If LCase(Left(NamedRange.Name, 3)) = "r1_" Then
MsgBox NamedRange.Name & Chr(10) & _
Range(NamedRange.RefersTo).Address(External:=True)
End If
Next NamedRange
End Sub
それらを非表示/再表示するには:
Range(NamedRange.RefersTo).EntireRow.Hidden = True 'or False
特定の文字列 (この場合は"_Filter"
. 一度特定の検索を行っているときに、ワークブック内のすべての名前付き範囲を再表示しました。不要になった名前を削除した後、フィルターに関連する名前を再度非表示にしたいと考えました。
Sub HideNames_Filter()
Dim nName As Name
For Each nName In ActiveWorkbook.Names
If InStr(nName.Name, "_Filter") Then
nName.Visible = False
End If
Next
End Sub