如果我运行以下代码
Sub Test_1()
Cells(1, 1).ClearContents
Cells(2, 1).Value = ""
End Sub
当我使用公式检查 Cells(1, 1) 和 Cells(2, 1) 时ISBLANK()
两个结果都返回TRUE。所以我想知道:
有什么区别Cells( , ).Value = ""
and Cells( , ).ClearContents
?
它们本质上是一样的吗?
如果我然后运行以下代码来测试方法之间的时间差:
Sub Test_2()
Dim i As Long, j As Long
Application.ScreenUpdating = False
For j = 1 To 10
T0 = Timer
Call Number_Generator
For i = 1 To 100000
If Cells(i, 1).Value / 3 = 1 Then
Cells(i, 2).ClearContents
'Cells(i, 2).Value = ""
End If
Next i
Cells(j, 5) = Round(Timer - T0, 2)
Next j
End Sub
Sub Number_Generator()
Dim k As Long
Application.ScreenUpdating = False
For k = 1 To 100000
Cells(k, 2) = WorksheetFunction.RandBetween(10, 15)
Next k
End Sub
我在我的机器上得到以下运行时输出
.ClearContents .Value = ""
4.20 4.44
4.25 3.91
4.18 3.86
4.22 3.88
4.22 3.88
4.23 3.89
4.21 3.88
4.19 3.91
4.21 3.89
4.17 3.89
根据这些结果,我们看到该方法.Value = ""
比.ClearContents
一般。总体来说这是真的吗?为什么这样?