Excel VBA質問箱 IV

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

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


4222 / 13644 ツリー ←次へ | 前へ→

【57812】処理時間が長すぎて 初心者 08/9/14(日) 14:00 質問[未読]
【57813】Re:処理時間が長すぎて かみちゃん 08/9/14(日) 14:16 発言[未読]
【57814】Re:処理時間が長すぎて 初心者 08/9/14(日) 14:51 お礼[未読]

【57812】処理時間が長すぎて
質問  初心者  - 08/9/14(日) 14:00 -

引用なし
パスワード
   入力画面から別シートへ転記するコードを作ったのですが
処理時間が長すぎて困っています。
どこのコードが悪いのかどなたか教えてもらえないでしょうか。
  Dim 号車NO As Long
  Dim 日付 As Long
  
  号車NO = Range("B3").Value
  日付 = Range("B2").Value
   
  Range("A7:H14").Copy

  Sheets("キャッシュ").Activate
  Range("A65536").End(xlUp).Activate
  ActiveCell.Offset(1, 2).Activate
  
  ActiveCell.PasteSpecial Paste:=xlPasteValues
  Application.CutCopyMode = False
  
  ActiveCell.Offset(0, 8).Activate
  
  Do Until ActiveCell.Offset(0, -7).Value = ""
  
    ActiveCell.Offset(0, -10).Value = 号車NO
    ActiveCell.Offset(0, -9).Value = 日付
    
    ActiveCell.Offset(1, 0).Activate
  
  Sheets("入力画面").Activate
   Range("A7:H14").Activate
   Selection.ClearContents
  Sheets("キャッシュ").Activate
  
  Loop

【57813】Re:処理時間が長すぎて
発言  かみちゃん  - 08/9/14(日) 14:16 -

引用なし
パスワード
   こんにちは。かみちゃん です。

>入力画面から別シートへ転記するコードを作ったのですが
>処理時間が長すぎて困っています。

入力画面シートにどのようなデータが入っていて、どれくらいの時間がかかるのか
よくわからないので、検証もできないのですが、開いているすべてのブックのどこかのシートに
数式は入っていませんか?

その数式が再計算されている可能性も高いので、まずは、以下の★の行のように
再計算を抑止して再開するという感じにしてみてはいかがでしょうか?

 Application.Calculation = xlCalculationManual '★
 
 ActiveCell.PasteSpecial Paste:=xlPasteValues

 '〜省略〜
 
 Do Until ActiveCell.Offset(0, -7).Value = ""

 '〜省略〜

 Loop
 
 Application.Calculation = xlCalculationAutomatic '★

【57814】Re:処理時間が長すぎて
お礼  初心者  - 08/9/14(日) 14:51 -

引用なし
パスワード
   ▼かみちゃん さん:

さっそくの返答有難うございます。
別シートにsum(if 関数で種別事に数値を取り出そうとして
関数はたくさん入れています。
再計算されているなんて知りませんでした。

さきほとのコード試してみましたが
Rangeクラスの PasteSpecialメゾットが失敗しました
と出てしまいました。(なんのことやらさっぱり)
けど問題がわかりましたので、色々と自分で調べてみます。
どうも有難うございましたー

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