Как получить месяц и отформатировать его в письменной форме - PullRequest
0 голосов
/ 13 июня 2019

У меня есть дата в формате "дд / мм / гг", и я хочу сделать ее "дд месяца гггг". Проблема в том, что я хочу это по-португальски, так что это «dd de month de yyyy», поэтому, если я делаю нормальный способ форматирования (`` `Format (Date," dd de mmmm de yyyy ") ´´´)" d " в слове "де" смешивается с днем.

Как мне решить эту проблему?

Я пробовал это

dados.Range("L" & linha).Value = Day(prcs.Range("B17")) & " de " & Format(Month(prcs.Range("B17")), mmmm) & " de " & Year(prcs.Range("B17"))

И то, что я получаю для даты, такой как 12/05/18, будет «12 декабря 2015 года» вместо того, что я ожидал «12 мая 2018 года».

Я также пытался сохранить месяц в другой переменной и отформатировать его оттуда, но я либо испортил его, либо он не работает.

Ответы [ 2 ]

1 голос
/ 13 июня 2019

Вы хотите задать формат в виде строки "mmmm", т. Е. Format(Month(prcs.Range("B17")), "mmmm").

Это будет выделено, если у вас есть Option Explicit в верхней части вашего кода. enter image description here

1 голос
/ 13 июня 2019

d - зарезервированный символ маски формата, представляющий день месяца без начального нуля.Чтобы явно использовать его как буквальную строку, используйте обратную косую черту или используйте кавычки.Поскольку вы должны удваивать кавычки внутри строки в кавычках, обратный слеш кажется более подходящим.

'Format(Date, "dd \d\e mmmm \d\e yyyy")
dados.Range("L" & linha).Value = Date
dados.Range("L" & linha).NumberFormat = "dd \d\e mmmm \d\e yyyy"
'with quoted literal string
dados.Range("L" & linha).NumberFormat = "dd ""de"" mmmm ""de"" yyyy"
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...