Bu: Cı
Public Function VBA_Date(i As Long) As String
VBA_Date = Format(CDate(i), "mm/dd/yyyy")
End Function
doldurmak için kolon:
Bu UDF() kullanın sadece çalışma sayfasının kendisi. Ya da doğru olmak gerekirse: Çalışma sayfası işlevselliği!
Hızlı testi:
?cdate(1)
1899-12-31
?format(1,"YYYY-MM-DD")
1899-12-31
?worksheetfunction.Text(1,"YYYY-MM-DD")
1900-01-01
Ama bugünün tarih oluyor bu boşluğu görünmüyor:
?clng(now)
42463
?worksheetfunction.Text(now,"0")
42463
yerde 1 ila 42.463 bir boşluk olduğunu göstermektedir (hızlı lotus çek bunu gösteriyor :
?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
son bir deney tekrar görüntülemek için:
61 ile başlayan, artık sayılarda artık bir fark var. Ancak Lotus-Bug, "uyumluluk" için 1900-02-29'u ekler.
Ayrıca: excel için bir "özellik" dir ve temel, vbscript, vba .......... ile ilgisi yoktur. Diğer tüm programlar doğru şekilde çalışır ve çok fazla sorun olur eğer VBA olmazsa. Bu nedenle, "uyumluluk", VBA'da excel için doğru şekilde yapar;)
Tüm MS Office uygulamalarında temel tarih (tarih sıfırı) 12-30-1899 olduğundan ve bu tarihe 1 eklendiğinde 12 sonuçlanır. -31-1899. (Bunu bir Excel hücresine 0 koyarak ve bir tarih olarak biçimlendirerek kendiniz doğrulayabilirsiniz.) –
@KenWhite o zaman neden MacroMan 1/1/1900 [buradan] aldı (http://stackoverflow.com/questions/36375368/ basit-neden-benim-msgbox-dönmeyen-geçerli yıl? noredirect = 1 # comment60374031_36375368) yorumlarda. Ayrıca sisteminizde CDate (1) 'yapabilir ve ne aldığınızı söyler misiniz? – newguy
@KenWhite epoch tarihi hakkında doğrudur - hakkında bilgi alabilirsiniz * why * [here] (https://blogs.msdn.microsoft.com/ericlippert/2003/09/16/erics-complete-guide-to-vt_date /) – Comintern