2016-12-29 5 views
1

私はエクセルツールで大量のデータを並べ替えるのに役立つ短いコードを開発しましたが、今までの作業をすべて壊す。アルファベット順の並べ替え - ペーストエラー - 大量のデータ

私のテーブルは500列以上の幅を持ち、アルゴリズムは一度に2つの行をコピーして貼り付けたいと思っています(私は融合したセルを使用しています。 私のアルゴリズムはやるしようとします:

Rows(i & ":" & i + 1).Cut 
    Rows(j & ":" & j + 1).Select 
    Selection.Insert shift:=xlDown 

i、jは列インデックスであることが(私は行の下に私を行jとj + 1を入れて試してみて、私は私に語っ1

エクセル+その現在ressourcesを行うことはできません。 私は

range(cells(i,bc),cells(i+1,ec)).cut 
range(cells(j,bc),cells(j+1,ec)).select 
Selection.Insert shift:=xlDown 

BCが最後

を私の選択の最初の列であることと、ECのようなもので、細胞の量を減らすことを試みました

しかし、それでもまだ、私はそうここ

質問である(選択はとても周りの1K細胞は500〜510のcolumsで)同じ問題を抱えている:

は、そのエラーを回避し、カットを強制する方法はあります/ペースト? (私は一度にx個の列を変更することを避け、すでにかなり遅いプロセスを遅くしています)

または私が知らない行のインデックスを変更する方法はありますか?

あなたの時間と今後のお返事ありがとうございます。 PEagle

+0

あなたが同時に実行している他のポーログラムは?あなたのファイル(サイズ)はどれくらい大きいですか?以下の私のコメントを参照してください –

+0

マージされたセルを持つシートをソートする必要がある場合は、マージされたセル(シート上またはカスタムクラスのメモリ内)のすべてを平坦化し、ソートしてから、マージする必要のあるセル。 *任意のアルゴリズムを使用してワークシートを手動でソートするためにカットアンドペーストを使用することは、パフォーマンスの悪夢になります。 – Comintern

+0

私のファイルは約6300KBです。 – PEagle

答えて

0

申し訳ありませんが、私の質問は廃止されました。

ファイルをリルークしました。わからない理由で、ファイルの最後まですべての行が含まれています(1百万回)。私は不要な行を削除して(ファイルを再作成しました)、今は正常に動作します。

ご迷惑をおかけして申し訳ありません、ご協力いただきありがとうございます。 すぐにお会いしましょう。

0

これは答えではなく、コメントとして入れるには長すぎます。

私はちょうどエラーなしでをちょうどよい細かく(行のための700列のデータで)、そして切り裂く>>貼り付けを行った。

Option Explicit 

Sub CopyFullTwoRows() 

Dim i As Long, j As Long 

' just for simulation 
i = 2 
j = 10 
Rows(i & ":" & i + 1).Cut 
Rows(j & ":" & j + 1).Insert Shift:=xlDown 

End Sub 
+0

悲しいかな、私のコンピュータは確かに(方法)あなたよりもパフォーマンスが低い... 私はそれが取るメッセージを与える長いが、それを防ぐことはできない。 ただし、VBAコードは完全に再起動した後でもクラッシュします。 – PEagle

0

私はので、ここでコメントprivilegiesではまだないです申し訳ありませんが、あなたのコメント/解答への答えです:

私のファイルが6300キロバイト程度です。 他のプログラムでは、見通しやファイアウォールは一般的ですが、仕事場のコンピュータはあまり強力ではありません。 私のマージされたセルの平坦化と並べ替えに関して、問題はソートを行う必要がありますが、偶数行だけです。

私はインターネット上で送信することはできませんが、アイデアを伝えるために、私は2行が一緒に働き、BからFの列がマージされます(B8 + B9、B10 + B11などC8 + C9など)、これらの行のそれぞれに2行のデータがあります。 unmergingを実行すると空白のセルがポップし、ソートするとテーブル全体が乱されます。

関連する問題