私はひどい打撃を受けましたが、私の検索は今まで役に立っていませんでした。VBA変数に値(のみ)を割り当てます
私はその後、2つのコピーの結果を比較し、コピーするいくつかの計算を実行し、別のコピーを取り、他のいくつかの計算を実行しようとする関数に渡されるバリアントを持っている...
しかし、私は1つのコピーで計算を実行し、元のバリアントも操作されます.2つのコピーと2つの計算の後、私はお互いに等しく、オリジナルとは異なる3つの変種で終わります。
私はNewVar = OldVar
を使用すると、実際に元のオブジェクトへの参照を取っているので、これが起こっていると思います。私が実際に望んでいるのは、元のオブジェクトの独立した複製を作ることです。つまり、関数delcarationのbyvalに似た変数の値をコピーします。
私のコードはhttps://1drv.ms/x/s!AiPgb0BH-YZ_ga956eMmJbSdihGjygにリンクされています。
あなたがmodMainのライン67上の休憩を入れた場合は、私がままにCutList(1).QTY
をしたい...あなたはライン67をステップ実行するとき、両方のQTYが減少値がわかりますCutTrial.RemainingCuts(1).QTY
CutList(1).QTY
(元の変数)を見て、変更されておらず、CutTrial.RemainingCuts(1).QTY
は詐欺だけです。
提案がありますか?あなたはそれが参照を変更します見られるよう
あなたが持つ問題を抱えている実際のコードを含めるために、質問を編集してください。 – Comintern
modMainの54行目では、CutTrial.RemainingCuts = cutListを設定しているので、両方とも同じオブジェクトを指しています。この時点で新しいオブジェクトを作成し、CutTrail.RemainingCutsに割り当てる必要があります。 – Amorpheuses
@Amorpheuses - これは私が見ている動作です。私はあなたの提案をショットを与えるでしょう - ありがとう。 – GerHick