0

名前付き範囲に少し問題があります。

異なるシートに複数の名前付き範囲があります。これらすべての範囲をvbaで非表示または表示したいと思います。名前付き範囲の例: r1_name1 。別のシートの 2 番目は r1_name2 です。したがって、すべての範囲は前に同じコード r1_ で始まります。

r1_ で始まるすべての範囲をループして非表示/表示するにはどうすればよいですか?

4

2 に答える 2

2

名前付き範囲をループするには:

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
于 2013-08-29T14:56:04.563 に答える
0

特定の文字列 (この場合は"_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
于 2021-10-05T23:34:42.307 に答える