広い範囲(1000行以上)でセル値「noinfo」をクリアする必要があります。以下のマクロを使用していますが、非常に遅いです。おそらく、このタスクを実行するためのより良い方法がありますか?
For Each cell In Range("L2:N" & Range("N" & Rows.count).End(xlUp).Row)
If cell.Value = "noinfo" Then cell.ClearContents
Next cell
広い範囲(1000行以上)でセル値「noinfo」をクリアする必要があります。以下のマクロを使用していますが、非常に遅いです。おそらく、このタスクを実行するためのより良い方法がありますか?
For Each cell In Range("L2:N" & Range("N" & Rows.count).End(xlUp).Row)
If cell.Value = "noinfo" Then cell.ClearContents
Next cell
すべての値を配列にコピーし、配列を変更して、一度に範囲に書き込む方がはるかに高速であることがわかりました。
Dim values(), r As Long, c As Long
With Range("L2:N" & Range("N" & Rows.Count).End(xlUp).Row)
values = .Value
For r = 1 To UBound(values, 1)
For c = 1 To UBound(values, 2)
If values(r, c) = "noinfo" Then values(r, c) = Empty
Next
Next
.Value = values
End With
利点: