में डेटवैल्यू और सीडीएट के बीच अंतर मैं वीबीए के लिए नया हूं और मैं स्प्रेडशीट से डेटा में पढ़ने के लिए मॉड्यूल पर काम कर रहा हूं और स्प्रेडशीट की तिथियों के आधार पर मूल्यों की गणना करता हूं। मैंने स्ट्रिंग के रूप में चरों में पढ़ा है और फिर वर्तमान में सीडीएटी का उपयोग कर मूल्यों को बदल रहा हूं। हालांकि मैं सिर्फ डेटवैलू में भाग गया और मैं सोच रहा था कि दोनों कार्यों के बीच क्या अंतर था और कौन सा उपयोग करने वाला बेहतर है।वीबीए
वीबीए
उत्तर
DateValue
में इस्तेमाल केवल तारीख वापस आ जाएगी।
? DateValue("2014-07-24 15:43:06")
24/07/2014
? CDate("2014-07-24 15:43:06")
24/07/2014 15:43:06
इसी तरह आप TimeValue
उपयोग कर सकते हैं केवल समय भाग वापस जाने के लिए:
? TimeValue("2014-07-24 15:43:06")
15:43:06
? TimeValue("2014-07-24 15:43:06") > TimeSerial(12, 0, 0)
True
इसके अलावा, जैसा guitarthrower कहते हैं, DateValue
(और TimeValue
) केवल String
मानकों को स्वीकार करेंगे CDate
दिनांक और समय सुरक्षित करेगा , जबकि CDate
संख्याओं को भी संभाल सकता है। संख्यात्मक प्रकारों के लिए इन कार्यों को अनुकरण करने के लिए, CDate(Int(num))
और CDate(num - Int(num))
का उपयोग करें।
CDate
किसी संख्या या टेक्स्ट को एक तिथि में रूपांतरित करेगा।
CDate(41035) 'Converts to a date of 5/6/2012
CDate("1/15/2014") 'Converts to a date of 1/15/2014
DateValue
टेक्स्ट प्रारूप (केवल) तिथि में कनवर्ट करेगा। (Dd/mm/yyyy प्रारूप)
DateValue("1/15/2014") 'Converts to a date of 1/15/2014
DateValue(41035) 'Throws a mismatch error
दोनों CDate और DATEVALUE, जब VBA में प्रयोग किया जाता है, एक तिथि के लिए एक मूल्य धर्मान्तरित:
1)
LstrDate = "July 24, 2014"
LDate = CDate(LstrDate)
2)
LDate = DateValue("July 24, 2014")
दोनों एक ही परिणाम लौटते हैं।
हालांकि DATEVALUE एक दिनांक का क्रमांक लौटाता है यदि अनुप्रयोग स्तर (स्प्रेडशीट)
स्प्रेडशीट फ़ंक्शन, अंतर के बारे में नहीं पता था। जानकार अच्छा लगा। – guitarthrower