2016-03-29 35 views
-1

CDate (gg/aa/yyyy) kullanılarak biçimlendirilmiş bir hücreye bir giriş iletisi yanıtı görüntülemek istiyorum. Giriş dd/aa/yy olarak yapıldıysa neden kod hata mesajını göstermiyor? Program kabul eder ancak çıktı yy/mm/dd olarak gösterilir.VBA'da Çalışma Biçimi Çalışma Biçimi

Sub inputSettlementDate() 

Dim varInputDate As Variant 
Dim lngERow As Long 


varInputDate = InputBox("Please enter the Settlement Date using this format dd/mm/yyyy.", "Settlement Date") 
If IsDate(varInputDate) Then 
    varInputDate = Format(CDate(varInputDate), "dd/mm/yyyy") 
    Else 
    MsgBox "Please enter a valid date format dd/mm/yyyy" 
End If 

If IsDate(varInputDate) Then 
    lngERow = Range("B" & Rows.Count).End(xlUp).Row + 1 
    Range("B" & lngERow).Value = varInputDate 
End If 
End Sub 

cevap

0

emin Sütun B yapmak isteyebilirsiniz Genel olarak bir biçime sahip, ya da bir yy/aa/gg biçimini yok: Aşağıdaki

oluşturduğum kodudur. Kodunuzu boş bir çalışma kitabında hiçbir şey değiştirmeden test ettim ve kusursuz çalıştı.

+0

Merhaba ... Biçimi Genel olarak değiştirdim ama yine de aynı. Giriş kutusuna "24/3/2016" yerine "24/3/16" yazdım. Format yanlış olduğu için bir hata mesajı görüntüleyeceğini düşündüm. Çıktı "16/03/2024" olarak gösterir. – ArleneJ

+0

Tamam, önce, daha önce cevaplamadığım bir şey. Eğer dd/aa/yy koyduysanız, IsDate (varInputDate) satırı geçerli bir tarih olarak değerlendirir ve bir hata göstermemek üzere normal işleme girer. "Merhaba dünya" gibi düzenli bir dizeyle deneyin ve hatayı alırsınız. İkinci olarak, CDate, sisteminizin yerel ayarlarına göre tarih biçimlerini tanır. Bunu kaldırmayı deneyin. –

+0

işe yarıyor! Bu benim (not al: ilk önce) kodu ile yanlış bir şey yok ortaya çıkıyor. Teşekkürler! – ArleneJ