2011-12-15 16 views
5

Excel'de, elektronik tablodaki verileri analiz eden ve bir e-posta gönderen bir VBA makrosu yazıyorum. Bu makroda, "MM/dd" olarak biçimlendirilmiş tarihi eklemeliyim, ancak çıktı "MM-dd" biçimindedir. Öyleyse soru şu ki, neden benim çizgim bir çizgi ile değiştiriliyor?Biçim (SomeDate, "MM/dd") = "12-15", VBA'da

Kolaylık olması açısından, ben çalıştırmak

Private Sub Test() 
    Dim Yesterday As Date: Yesterday = DateAdd("d", -1, Now) 
    MsgBox Format(Yesterday, "MM/dd") 
End Sub 

, mesaj kutusu yerine "12-15" gösteriyor ... Bu örneğe kodu azaltılmış ve sorun da bu örnekle var doğruladıktan Beklendiği gibi "12/15".

+0

Aynı kodu kullandım ve beklediğim gibi "12/15" alıyorum. Bu sıradışı ... – aevanko

cevap

11

Kendimi VBA kullanmadıysanız, ama "geçerli kültürün tarih ayırıcı" olarak / davranıyor şüpheli - ve muhtemelen tarih ayırıcı olarak - kullanan bir kültürde infaz ediyoruz. kesinlikle hep bir çizgi istiyorsanız eğik çizgi kaçan alıntı deneyebilirsiniz: sebebi ve düzeltme hem bir tahminle biraz var

MsgBox Format(Yesterday, "MM\/dd") 

, ama denemeye en azından değer.

DÜZENLEME: Bu bağlamda doğru kaçışın nasıl gerçekleştirileceğinin düzeltilmesi için GSerg'e teşekkürler.

+1

Senin tahminin tamamen doğru, sadece kaçan, bir eğik çizgi ile bitti: "MM \/dd" ' – GSerg

+0

Kültür ayarları hakkında doğru olabilir. Bölgesel ayarlarında "yyyy-MM-dd" olarak ayarlanmış tarih biçem var. Tırnak işaretlerini önerdiğiniz gibi eklemek 12 '-' 14 'ile sonuçlandı. –

+0

@GSerg, teşekkürler, istenen çıktıyı üretti! –

2

Bu, Windows'taki kültür ayarlarınız ile ilgilidir. Denetim Masası - Bölgesel ve Dil Seçenekleri - Bölgesel Seçenekleri Özelleştir - Tarih ayırıcı'ya gidin. "-" olarak ayarlandı. Eğer tercih ederseniz "/" orada değiştirebilirsiniz.

Varsayılan bölgesel ayarlarınızdan bağımsız olarak tarihi biçimlendirmek isterseniz, Jon Skeet'in söylediğini (karakterden kaçış) yapabilirsiniz.