यह है केवल वर्कशीट ही। या सही होने के लिए: वर्कशीट-कार्यक्षमता!
त्वरित परीक्षण:
?cdate(1)
1899-12-31
?format(1,"YYYY-MM-DD")
1899-12-31
?worksheetfunction.Text(1,"YYYY-MM-DD")
1900-01-01
लेकिन आज की तारीख के लिए जा रहा इस अंतर दिखाई नहीं देता:
?clng(now)
42463
?worksheetfunction.Text(now,"0")
42463
से पता चलता है कि कहीं न कहीं 1 के बीच और 42,463 एक अंतर है (त्वरित कमल की जांच यह पता चलता है :
?cdate(60) & " --- " & cdate(61)
1900-02-28 --- 1900-03-01
?format(60,"YYYY-MM-DD") & " --- " & format(61,"YYYY-MM-DD")
1900-02-28 --- 1900-03-01
?worksheetfunction.Text(60,"YYYY-MM-DD") & " --- " & worksheetfunction.Text(61,"YYYY-MM-DD")
1900-02-29 --- 1900-03-01
बस एक अंतिम परीक्षण इसे फिर से दिखाने के लिए:
?format("1900-02-28","0") & " --- " & format("1900-03-01","0")
60 --- 61
?worksheetfunction.Text("1900-02-28","0") & " --- " & worksheetfunction.Text("1900-03-01","0")
59 --- 61
61 से शुरू होने पर, संख्याओं में अब अंतर है। लेकिन लोटस-बग 1 9 00-02-29 को "संगतता" के लिए जोड़ता है।
इसके अलावा: यह एक्सेल के लिए "फीचर" है और मूल, vbscript, vba .......... के साथ कुछ भी नहीं है। अन्य सभी प्रोग्राम सही तरीके से काम करते हैं और इसे बहुत सारी परेशानी होगी अगर वीबीए नहीं होगा। तो "संगतता" के लिए एक्सेल में VBA सिर्फ सही तरीके से करता है;)
स्रोत
2016-04-02 21:35:45
क्योंकि सभी एमएस ऑफ़िस अनुप्रयोगों में आधार तिथि (तारीख शून्य) 1899/12/30 है, और 12 में उस तारीख परिणाम के लिए 1 जोड़ने -31-1899। (आप एक एक्सेल सेल में 0 डालने और एक तिथि के रूप में यह फ़ॉर्मेट करके इस अपने आप को सत्यापित कर सकते हैं।) –
@KenWhite तो क्यों MacroMan 1900/01/01 [यहां] मिल गया है (http://stackoverflow.com/questions/36375368/ टिप्पणियों में सरल-क्यों-है-my-msgbox-not-returning-the-current-year? noredirect = 1 # comment60374031_36375368)। क्या आप अपने सिस्टम पर 'सीडीएटी (1)' भी कर सकते हैं और मुझे बता सकते हैं कि आपको क्या मिलता है? – newguy
@KenWhite युग तारीख के बारे में सही है - आप के बारे में पढ़ सकते हैं * क्यों * [यहां] (https://blogs.msdn.microsoft.com/ericlippert/2003/09/16/erics-complete-guide-to-vt_date /) – Comintern