Vba – How to change the locale of a formatted date


I want to retrieve today's date in a specific format with English month name.

I'm using
Format(DateValue(Now), "dd-mmm-yyyy"),
which gives me
which is in Polish. What I want to get is

I am only interested in a VBA solution. Please also provide a way to set the locale back to the original, also using VBA.

Best Solution

It's not very difficult...

Sub VBA_Dates_Format()
    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

I have achieved this by recording and modifying a macro to fit the criteria.

Further reading available here

Related Question