いくつかの背景:最も簡単な方法
私は17のサブルーチンを実行Excelアドインを持っており、
に最も簡単で効率的、かつ最速の方法だろうかと思いました。- レコード特定のマクロ
- ディスプレイによって行われた変更(新しいスプレッドシート内の)すべての変更のリストとそれが変更された理由(またはフラグ付き/強調表示された)各セル
- は、各々が誤るのセルアドレスを提供しますまたは、私がこれまでに収集した何を(同じワークブックに)別のワークシートの特定のセルにユーザーがかかりますクリック可能なリンク
として:
私は上に読みましたこれを達成する方法はほとんどありません。特に、here、here、here、そして最も重要なのはhereです。これらは、従来のすべての潜水艦が完了した後、二番目の配列にUsedRange
をダンプ次いで、すべてのサブルーチンを介して実行するアレイにUsedRange
をダンプよう
- ような方法を示唆しています。 2つの配列を比較し、違いを見つけてください。
worksheet_change
イベントを使用して変更を記録します。- Marktastic siteの最後のリンクは、前の2つの方法を組み合わせた最も説得力のある方法です。しかし、
worksheet_change
イベントが発生するたびに配列をチェックする彼の方法でも、それはオーバーヘッドが大きくなるように見える.06秒かかる。私が直面している
いくつかの特定の問題が含まれます:
- は、大きなファイルを扱う私の潜水艦の一部をする必要はありません変更を加える
- (15000+行、150列)特定のセルの値を並べ替えるだけで、それ以外の場合は値を並べ替えるなどしないように注意してください。
- マクロは高速で動作するように設計されています(< 1分)ので、大型ファイルのスキャンを完了すると、各エラーがそれに応じて処理された後、別のワークシートに即座に書き込むこともできます。 1つの方法で両方の方法を使用しても、マークが示唆するように、あまりにも多くの遅延時間を引き起こすようです。
- 2つの配列を比較すると、15000(行)×150(列)= 2,250,000のセルを繰り返すことを意味するので、私が作業しているファイルではかなり遅くなるようです。
- 私は "マクロを介したすべての変更
worksheet_change
イベントは発生しません。
だから、基本的に私が遭遇してきたすべてのオプションを排除していること。私は考えることができる唯一の他の選択肢はただ一つのアレイ、使用していていますコードが実行されているときにセル/位置とその場所のエラーを記録し、その後、サブシートが完成した後に新しいシートに配列全体をダンプします。だから、
、私の質問のために、今すぐ
上記の事実と研究のすべてを与えられた:変更を記録し、どのような(必要に応じて表示する私の状況の中で最も効率的な方法だろう何
- - 注)私のマクロが完了した後にファイルに変更が加えられましたか?私がそれを列挙したかどうかにかかわらず、この状況に最も適していると思われる方法を自由に共有してください。
- 提案された方法を実装する方法の簡単なサンプルコードを提供できますか?
、あなたの質問を絞り込むあなたのサンプルコードが含まれており、問題のある部分を強調してください。よろしくお願いします。 –
これがどのように細く絞られるのか分かりません。私は非常に詳細な説明をしました。私はリンクに含まれているコード以外のサンプルコードを持っていませんが、それがあなたを幸せにするなら、それらを直接ポストに含めるでしょう。私は状況をどのように処理するかについてのアドバイスを探していますが、誰かが私のためにコードを書く必要はありません。私はこれが "*コード作成サービス*"ではないことを知っています。私は規則を知っている。 – CaffeinatedCoder
あなたの投稿は、いくつかのディスカッションフォーラムに適しています。よろしくお願いします。 –