अगर मैं जब मैं कोशिकाओं (1, 1) और सेल (2, 1) सूत्र ISBLANK()
का उपयोग कर जाँच निम्नलिखित कोड.Value = "" और .ClearContents के बीच क्या अंतर है?
Sub Test_1()
Cells(1, 1).ClearContents
Cells(2, 1).Value = ""
End Sub
चलाने दोनों परिणाम सही लौट आते हैं। तो मैं सोच रहा हूं:
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
से अधिक है। क्या यह सामान्य रूप से सच है? ऐसा क्यों?
मुझे लगता है कि आपने अपने समय परीक्षण के साथ सिर पर नाखून मारा। मेरा अनुमान है कि स्पष्ट conte एनटीएस फायदेमंद है यदि संख्या स्वरूपण है जिसे आप संरक्षित करना चाहते हैं, जिसे खाली स्ट्रिंग द्वारा लिखा जा सकता है। इसके मुकाबले ज्यादा बारीकियां हो सकती हैं, लेकिन यदि ऐसा है, तो मुझे इसके बारे में पता नहीं है – RGA
'। वैल्यू =" "बस सेल में शून्य-लंबाई वाली स्ट्रिंग रख रहा है, इसलिए आप इसे केवल एक नया मान लिख रहे हैं (_it तकनीकी रूप से रिक्त नहीं है ..._) 'क्लीयरकंट्स' वास्तव में सेल की 'वाल्यू' को हटा रहा है, जिसे मैं कल्पना करता हूं कि स्मृति प्रबंधन के मामले में थोड़ा अधिक ओवरहेड है। –
@MacroMan गणित समानता का उपयोग करते हुए, क्या आप इसका अर्थ यह बता रहे हैं कि '। Value = "" '0 के बराबर है और' क्लेयरकंट्स 'एक खाली सेट के बराबर है? वैसे भी, मेरे प्रश्न को संपादित करने के लिए धन्यवाद आरजीए। –