0

選択に基づいて特定の行を自動非表示にするVBコードを含むExcel2010スプレッドシートがあります。ただし、Excelスプレッドシートに行を挿入する必要がある場合、数式の場合のようにvbコードが自動的に更新されません。

これが私のコードの例です:

If Target.Address(False, False) = "B96" Then
    Select Case Target.Value
        Case "NO":  Rows("97:101").Hidden = True
        Case "YES": Rows("97:101").Hidden = False
    End Select
End If

したがって、たとえば、Excelスプレッドシートの90行目に新しい行を挿入すると、VBコードが自動的に更新され、target.addressがB97などに変更されると予想されていました。Excelの数式で機能するので、コードでも機能させる方法はありますか?

ありがとうございました

4

1 に答える 1

2

関連する範囲(A97:A101など)に名前付き範囲(OPTIONRNGEなど)の名前を付けてから、コードを次のように変更することをお勧めします。

Case "NO":  Range("OPTIONRNGE").Rows.Hidden = True
Case "YES": Range("OPTIONRNGE").Rows.Hidden = False

次に、行を挿入すると範囲が拡張され、コードは同じことを実行します。名前付き範囲は、ほとんどの場合、VBAで範囲や行番号をハードコーディングするよりも優れています。

于 2013-02-20T15:02:34.000 に答える