Excel VBA質問箱 IV

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

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


12979 / 76734 ←次へ | 前へ→

【69266】繰り返し処理を早くする
質問  けい  - 11/6/16(木) 15:55 -

引用なし
パスワード
   お世話になります。

複数行の条件を探して処理をする方法で
早く処理ができる方法がありましたら教えてください。

以下のようにAAAというシートをアクティブにしたらピボットが更新されるまくろがあります。
E列に受注数、H列に使用数、I列に残数を計算させ、D列に集計という文字がある場合はその行に色を付けています。

Forを使わずDo Loopなどにした方が早く進みますか?
今は数分実行にかかってしますので、どこをどのように書き換えたら早くなりますでしょうか。

Sub ピボット更新()
  
  ActiveSheet.PivotTables("ピボットテーブル1").PivotCache.Refresh
 
Dim mRow As Long
Dim i As Long
Dim 受注数 As Integer
Dim 使用数 As Integer

Application.ScreenUpdating = False

  With Sheets("AAA")
    mRow = WorksheetFunction.Max(.Range("D" & .Rows.Count).End(xlUp).Row)
  End With

  Range("C5:I" & mRow).Interior.ColorIndex = xlNone
 
  For i = 5 To mRow
     
   If Cells(i, 5) <> "" Then
  
   受注数 = Cells(i, 5)

   If InStr(Cells(i, 4), "集計") >= 1 Then

   使用数 = Cells(i, 8)
  
     Range(Cells(i, 4), Cells(i, 9)).Interior.ColorIndex = 40
        
    Cells(i, 9).Value = 受注数 - 使用数
  
   End If
        
   Next i

 MsgBox "ピボットを更新しました"
 
Application.ScreenUpdating = True
 
End Sub

6 hits

【69266】繰り返し処理を早くする けい 11/6/16(木) 15:55 質問
【69267】Re:繰り返し処理を早くする かみちゃん 11/6/16(木) 16:05 発言
【69268】Re:繰り返し処理を早くする けい 11/6/16(木) 16:19 質問
【69269】Re:繰り返し処理を早くする U02 11/6/16(木) 20:35 発言
【69272】Re:繰り返し処理を早くする Jaka 11/6/17(金) 9:18 発言

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