|
お世話になります。
複数行の条件を探して処理をする方法で
早く処理ができる方法がありましたら教えてください。
以下のように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
|
|