2014-07-24 8 views
13

में डेटवैल्यू और सीडीएट के बीच अंतर मैं वीबीए के लिए नया हूं और मैं स्प्रेडशीट से डेटा में पढ़ने के लिए मॉड्यूल पर काम कर रहा हूं और स्प्रेडशीट की तिथियों के आधार पर मूल्यों की गणना करता हूं। मैंने स्ट्रिंग के रूप में चरों में पढ़ा है और फिर वर्तमान में सीडीएटी का उपयोग कर मूल्यों को बदल रहा हूं। हालांकि मैं सिर्फ डेटवैलू में भाग गया और मैं सोच रहा था कि दोनों कार्यों के बीच क्या अंतर था और कौन सा उपयोग करने वाला बेहतर है।वीबीए

उत्तर

22

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)) का उपयोग करें।

4

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 
2

दोनों CDate और DATEVALUE, जब VBA में प्रयोग किया जाता है, एक तिथि के लिए एक मूल्य धर्मान्तरित:
1)
LstrDate = "July 24, 2014"
LDate = CDate(LstrDate)

2)
LDate = DateValue("July 24, 2014")

दोनों एक ही परिणाम लौटते हैं।

हालांकि DATEVALUE एक दिनांक का क्रमांक लौटाता है यदि अनुप्रयोग स्तर (स्प्रेडशीट)

+2

स्प्रेडशीट फ़ंक्शन, अंतर के बारे में नहीं पता था। जानकार अच्छा लगा। – guitarthrower