1

特定のフィールドに入力された値に基づいて、Excel 2010 スプレッドシートの一部の行を自動非表示にしようとしています。データ検証を使用して、最小数と最大数を 0 から 50 の間で設定しています。0 の場合は次の 3 行を非表示にしますが、それ以外の数の場合は行を表示します。

以下は、動作する VBA コードですが、考えられるすべての番号を入力する必要があります。代わりに使用できる IF Else ステートメントはありますか? 0 の場合は非表示、そうでない場合は行を表示

If Target.Address(False, False) = "B45" Then

    Select Case Target.Value

        Case "0": Rows("46:48").Hidden = True

        Case "1": Rows("46:48").Hidden = False

        Case "2": Rows("460:48").Hidden = False

        Case "3": Rows("46:48").Hidden = False

        Case "4": Rows("46:48").Hidden = False

        Case "5": Rows("46:48").Hidden = False

        Case "6": Rows("46:48").Hidden = False

        Case "7": Rows("46:48").Hidden = False

        Case "8": Rows("46:48").Hidden = False

        Case "9": Rows("46:48").Hidden = False

        Case "10": Rows("46:48").Hidden = False

    End Select

    Else: Rows("46:48").Hidden = False

End If

ありがとうございました!

4

2 に答える 2

1

使用しないでください:

Case Else
Rows("46:48").Hidden = False

?

これは、最初のケース (0) に適合しないものはすべて、デフォルトでこれになることを示しています。

誤解していたらごめんなさい。

于 2013-02-21T15:00:54.150 に答える
0

Select Case を使用する代わりに、以下を試すことができます。

If Target.Address(False, False) = "B45" Then
    If Target.Value > 0 And Target.Value <= 10 Then
        Rows("46:48").Hidden = False
    Else
        Rows("46:48").Hidden = True
    End If
Else
    Rows("46:48").Hidden = False
End If
于 2013-02-21T15:01:14.150 に答える