如果我運行下面的代碼.Value =「」和.ClearContents之間有什麼區別?
Sub Test_1()
Cells(1, 1).ClearContents
Cells(2, 1).Value = ""
End Sub
當我檢查將細胞(1,1)和細胞(2,1),使用式ISBLANK()
兩個結果返回TRUE。所以我想知道:
Cells(,).Value = ""
和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
快。這是真的嗎?爲什麼這樣?
我想你用定時測試擊中頭部,我的猜測是明確的如果您希望保留數字格式,則nts是有益的,可以用空字符串覆蓋。雖然可能有更多的細微差別,但如果是這樣,我不知道它 – RGA
'.Value =「」'只是在單元格中放置一個零長度的字符串,所以你只是寫一個新的值(_it在技術上不是空白的......_)'.ClearContents'實際上是刪除單元格的'.Value',我想在內存管理方面會有更多的開銷。 –
@MacroMan使用數學類比,你是否暗示'.Value =「」'等於0並且'.ClearContents'等於一個空集?無論如何,感謝RGA編輯我的問題。 –