【发布时间】:2016-02-23 08:51:11
【问题描述】:
我有大量数据 A4:EW8000+,我想用空白单元格替换包含零的单元格。格式化单元格不是一种选择,因为我需要保留当前格式。我正在寻找用空白单元格替换零的最快方法。
我可以通过循环来做到这一点,但它非常慢。下面的代码:
Sub clearzero()
Dim rng As Range
For Each rng In Range("A1:EW10000")
If rng.Value = 0 Then
rng.Value = ""
End If
Next
End Sub
有没有一种简单的方法可以在不循环的情况下做到这一点?
我尝试了以下代码,但它似乎无法正常工作。它将 Excel 挂起一段时间(没有响应),然后循环遍历范围并清空每个单元格。
Sub RemoveZero()
Dim LastRow As Long
Const StartRow As Long = 2
LastRow = Cells.Find(What:="0", SearchOrder:=xlRows, SearchDirection:=xlPrevious, LookIn:=xlValues).Row
With Range("B:EW")
.Value = Range("B:EW").Value
.Replace "0", "0", xlWhole, , False
On Error Resume Next
.SpecialCells(xlConstants).Value = ""
.SpecialCells(xlFormulas).Value = 0
End With
End Sub
【问题讨论】: