0

列 A のセルに 0 が含まれている場合、ワークシートの行の一部を非表示にしたいと考えています。これは数式を使用して計算されます。

たとえば、A1 に値「0」が含まれている場合、行 #1 は非表示にする必要があります。

このコードを Sheet の Activate イベントに記述できることはわかっていますが、ファイルのパフォーマンスが低下しています。

ファイルのパフォーマンスを損なうことなく同じことを達成する良い方法はありますか?

4

1 に答える 1

2

これを達成するためにいつでも使用できますfilter。その方がはるかに効率的だと思います。

編集: コードのパフォーマンスを向上させるために、次のことができます。

  1. イベントをオフにする
  2. 計算をオフにする

ループを実行して行を非表示にする前に

With Excel.Application
    .ScreenUpdating = False
    .EnableEvents = False
    .Calculation = xlCalculationManual
    .Cursor = xlWait
End With

ループ終了後

With Excel.Application
    .ScreenUpdating = True
    .EnableEvents = True
    .Calculation = xlCalculationAutomatic
    .Cursor = xlDefault
End With

お役に立てれば。また、変数を明示的に使用すると、パフォーマンスと計算が向上する可能性があります。変数を明示的に宣言することも役立ちますが。

于 2013-03-01T11:13:28.883 に答える