Excel VBA質問箱 IV

当質問箱は、有志のボランティア精神のおかげで成り立っています。
問題が解決したら、必ずお礼をしましょうね。
本サイトの基本方針をまとめました。こちら をご一読ください。

投稿種別の選択が必要です。ご注意ください。
迷惑投稿防止のため、URLの入力を制限しています。ご了承ください。


42760 / 76732 ←次へ | 前へ→

【39034】Re:処理速度を速めるには??
発言  ハチ  - 06/6/16(金) 11:34 -

引用なし
パスワード
   ▼aaa さん:
>1.セル範囲のデータクリア
>※本当は2行目の方の範囲はB列からH列でデータが入っている範囲全てとしたいのですが、いい方法が思いつかず上記のようになっています。
>最初「Range("B2:H65535")」としていたのですが、処理が途中で止まりフリーズします。

B2〜H列の最終行までなら、こんな感じで。

With Worksheets("Sheet2")
  .Range("B2", .Range("H65536").End(xlUp)).Clear
End With

>2.セル範囲のコピー
>i = Worksheets("Sheet1").Range("I1").Value
>iではデータの最終行を取得したセルの値で、それを元にセル範囲を決めています。
>ここがどうしても遅いのです。
>コピー元のデータはその時々により変化しますが、基本的には200行以上です。
>たぶんデータ量が多すぎてコピーに時間がかかるのではと思いますが、対処法はありますか?

これは、データが多いわけではなくコピーするロジックの問題だと思います。
値だけコピーでよければ、これでどうでしょうか?

i = Worksheets("Sheet1").Range("I1").Value
Worksheets("Sheet2").Range("B2:H" & i + 1).Value = _
Worksheets("Sheet1").Range("A1:G" & i).Value

>その後H列のみ数値データに変換したいので下記のような処理を行っています。
>
>Worksheets("Sheet2").Select
>Range("H1:H" & i).Select
>Selection.NumberFormatLocal = "\#,##0_);[赤](\#,##0)"
>
>あまりいい方法ではない気がするのですが、これ以外の方法で文字列として入力された数値データを一気に変換するマクロはありますか?

これは、セルの書式設定を変更しているだけでは?
.Valueの値に変化はないですよね?
見た感じ数値データと言うよりも、Currency型になりそうですが・・

1 hits

【38986】処理速度を速めるには?? aaa 06/6/15(木) 16:47 質問
【39034】Re:処理速度を速めるには?? ハチ 06/6/16(金) 11:34 発言
【39143】Re:処理速度を速めるには?? aaa 06/6/19(月) 10:18 質問
【39038】Re:処理速度を速めるには?? Jaka 06/6/16(金) 12:08 発言
【39144】Re:処理速度を速めるには?? aaa 06/6/19(月) 10:21 発言
【39146】Re:処理速度を速めるには?? Jaka 06/6/19(月) 11:05 発言
【39153】Re:処理速度を速めるには?? aaa 06/6/19(月) 11:37 発言
【39166】Re:処理速度を速めるには?? Kein 06/6/19(月) 14:42 発言

42760 / 76732 ←次へ | 前へ→
ページ:  ┃  記事番号:
2610219
(SS)C-BOARD v3.8 is Free