2016-10-18 10 views
0

配列またはワークシート:それは私がマクロに供給していたワークシートの範囲を取ると、私はいくつかの計算を行うことができますので、配列にそれを置く必要がありますソート私はこのコード行持っ

sourceRange = wbkSourceFile.Worksheets(1).Range(Cells(1, 1), Cells(lengthOfArray, widthOfArray)) 

を結果のデータを別のシートに配置します。計算を行うために、そのデータを3つの列でソートする必要がある場合は、範囲を配列にコピーする前にソートを行う方がよい(つまり、上記のコードを実行する)データをソートしますか?

つまり、ワークシートのデータをソートしてから、配列をロードするか、あとで配列をソートする方が良いでしょうか?

答えて

1

主な違いは、ソートを行うと、ソースシートがソートされてしまうことです。サブがソートを行う場合、ソースシートは変更されないままにすることができます。

また、このプロセスを頻繁に繰り返す場合は、サブをソートすると、データが処理されるたびに時間が節約されます。

+0

しかし、3つの列で配列をソートする方法はありますか?私はクイックソートアルゴリズムがそれを行うことができるとは思わない。私の唯一の残りの質問は、私はワークシートのソートをコードの背後で行うことができますか? – VinnyGuitara

+0

@VinnyGuitaraコードでは、任意の数の列で並べ替えることができます。 –

0

vbaには組み込み関数が組み込まれていないので、コードを使って実行する場合は、ソートアルゴリズムを作成/検索する必要があります。複数の列をソートしている場合、これは非常に複雑になります。したがって、私はあなたの最善の策は、Range.Sortを使用してワークブック内のデータをソートすることだと思います。

関連する問題