0

現在、VBA Excel でコードを開発しています。

このコードは、ワークシートのユーザー入力に基づいて 3 次元配列を生成します。

アイデアは、ユーザー入力が変更されるたびにこのコードを再実行することです。

しかし、計算時間が長いため、以前に計算されたデータを配列に保持し、新しいユーザー入力を受け取った行/列の配列のみを修正したいと考えています。

したがって、私の当初のアイデアは次のとおりでした。

  1. 配列をパブリックとして宣言し、
  2. 新しいコードを実行するたびに(つまり、新しい更新ごとに)「redim preserve」を使用します

ただし、新しいコードを実行するたびに、配列が空になり、完全な計算が再実行されることに気付きました...

誰かがこの問題を解決するのを助けることができますか?

前もってありがとうアル

4

1 に答える 1

0
Public Function UseTestVar()
    Static TestVar(10) As Integer

    Debug.Print TestVar(1)

    TestVar(1) = TestVar(1) + 1
End Function

Sub Test3()
    UseTestVar
End Sub

実行するたびにTestVar(1)値が増加します。

編集;

そうです、「グローバル」変数を「保持」する関数が必要であり、その関数を使用してすべてのものを処理するか、それを返すか、または...コードを知らなくても、そのままにしておく必要があります実用的な実装を理解するためにあなたに。

于 2013-07-19T09:56:56.117 に答える