[ 初めての方へ | 一覧(最新更新順) | 全文検索 | 過去ログ ]
『処理速度を早くしたい』(屯田兵)
いつも勉強させてもらっています。
範囲内の0を削除したく下記コードをしているのですが
ものすごく時間がかかります。
早くなる方法を教えてください。
Sub 数字0クリア()
Dim i
Dim v
Application.ScreenUpdating = False
For v = 72 To Range("D" & Rows.Count).End(xlUp)
For i = 4 To 78
If Cells(v, i).Value = 0 Then
Cells(v, i).ClearContents
End If
Next
Next
End Sub
最終行は2300ありますが、100行ほど入力された状態で試しても時間かかります。
よろしくお願いします。
< 使用 Excel:Excel2007、使用 OS:Windows7 >
Application.Calculation = xlCalculationManual
終了時に自動計算に戻すのは以下。
Application.Calculation = xlCalculationAutomatic
(???) 2015/10/21(水) 10:44
数式で入力されていなければ
Sub test()
With Range("d4", Range("d" & Rows.Count).End(xlUp)).Resize(, 74)
.Value = Evaluate("if(" & .Address & "=0,"""",if(" & .Address & "<>""""," & .Address & ",""""))")
End With
End Sub
(seiya) 2015/10/21(水) 10:53
同じく、数式で入力されていなければ
Sub test()
Range("D72:BZ" & Range("D" & Rows.Count).End(xlUp).Row).Replace _
What:="0", Replacement:="", LookAt:=xlWhole, _
SearchOrder:=xlByRows, MatchCase:=False, SearchFormat:=False, _
ReplaceFormat:=False
End Sub
とかも。
(ウッシ) 2015/10/21(水) 11:11
ありがとうございます。 計算式は入っていなく、データー貼り付けです。
試してみましたが、かわらないみたいでした。
(seiya)さん ありがとうございます。 計算式は入っていません。
早速試してみました。20秒ほどかかっていたのが
あっという間に処理できました。
>.Value = Evaluate("if(" & .Address & "=0,"""",if(" & .Address & "<>""""," & .Address & ",""""))")
まだ理解できませんが、勉強します。 ありがとうございました。
(ウッシ)さん
ありがとうございます。
ご提示のコード早速試してみました。
早く処理できました。
ありがとうございました。
いろんな方法をご教授いただきありがとうございました。
(屯田兵) 2015/10/21(水) 11:23
>まだ理解できませんが、勉強します。
理解しずらいかもしれませんが、参考まで
[[20070212134849]] 『Evaluate Method の研究』(seiya)
(seiya) 2015/10/21(水) 11:46
[ 一覧(最新更新順) ]
YukiWiki 1.6.7 Copyright (C) 2000,2001 by Hiroshi Yuki.
Modified by kazu.