2013-06-05 22 views
5

Bugünün tarihini İngilizce ay adıyla belirli bir biçimde almak istiyorum. Bana 05-cze-2013 verir ben Format(DateValue(Now), "dd-mmm-yyyy") kullanıyorumBiçimlendirilmiş bir tarihin yerel ayarı nasıl değiştirilir?

, , Lehçe olduğunu . Ne almak istediğim 05-Jan-2013.

Sadece bir VBA çözümüyle ilgileniyorum. Lütfen ayrıca yerel ayarı da VBA kullanarak orijinaline geri döndürmenin bir yolunu sağlayın.

cevap

7

Çok zor değil ...

Sub VBA_Dates_Format() 
    Cells.Clear 
    Range("A1").Value = Now 
    Range("A2").Value = Now 
    ' Polish 
    Range("A1").NumberFormat = "[$-415]d mmm yy;@" 
    ' English UK 
    Range("A2").NumberFormat = "[$-809]d mmm yy;@" 
End Sub 

ben kayıt ve kriterlere uygun bir makro değiştirerek bu elde ettik.


Further reading available here

+0

** mehow **, bu gerçekten etkileyici. Bu hileyi daha önce hiç görmedim. Daha fazla okuma için bir bağlantınız var mı? Buna nasıl eşlik ettiğinizi anlamak isterim. – tbur

+0

@tbur ive kaydedilmiş ve bir makro düzenlenmiş, ama ben de daha derin kazı yapmak istediğinizde yararlı bir bağlantı sağladım –

+1

Bunu bir String değişkeniyle nasıl yapabilirim? Dim myDate Dize olarak: myDate = Biçim (DateValue (Now), "[$ -409] mmmm yyyy") 'çalışmıyor, ay hala ingilizce (işletim sistemim) ... –

0

O değil temiz VBA ama o dizede biçimlendirilmiş tarihi lokalize almak için bir yoldur. Biçim işlevinin yapamayacağı bir şey. Ian Boyd yerelleştirilmiş biçimlendirme i harika cevap https://stackoverflow.com/a/899290 hakkında

With Range("$A$1") 
    .NumberFormat = "[$-809]dd mmmm" 
    .FormulaR1C1 = "=NOW()" 
    tmp = .Text 
    .NumberFormat = "@" 
    .Value = CStr(tmp) 
End With 

diğer bilgiler

İlgili konular