[ 初めての方へ | 一覧(最新更新順) | 全文検索 | 過去ログ ]
『処理速度を早くしたい』(屯田兵)
いつも勉強させてもらっています。
範囲内の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.