2

Excelで次のVBAコードのパフォーマンスを有意義な方法で改善する方法はありますか?

Private Sub Worksheet_SelectionChange(ByVal Target As Range)
   If Not Intersect(Me.Range("Group1"), Target) Is Nothing Then

     With wksData
       .Range("Group1Column").Value = Target.Column
       .Range("Group1Row").Value = Target.Row
     End With
   End If

End Sub

Group1ColumnおよびGroup1Rowの名前付き範囲を調べる条件付き書式を追加しました。パフォーマンスの問題がSelectionChangeの過剰な処理に関連しているのか、条件付き書式設定に関連しているのかはわかりませんが、解消したい顕著な遅延があります。

条件付き書式は非常に基本的で(Column($ D3)= Group1Columnのようなもの)、「目を見張る」目的でのみ使用されますが、ソリューション全体に役立ちます。

私が試したいくつかのこと:.ScreenUpdating、.EnableEvents、.Calculations。.ScreenUpdatingは、ユーザーが次のセルを選択する前に待機する必要があることを保証しますが、私が考えていたものとはまったく異なります。

ヒントは役に立ちます!

4

1 に答える 1

1

それは私にとって非常に速いです。ワークブックで他の多くの計算が行われていますか? どのバージョンを使用していますか?

于 2009-04-21T21:39:11.787 に答える