Como posso resolver o problema da função VBA FORMAT?

0

Estou usando a função FORMAT é o Excel 2103 VBA, mas não estou obtendo os resultados esperados.

Minha linha de código é:

strMonthNo = Format(Month(DateAdd("m", -1, Date)), "mm")

Onde Date é 29/11/2016, eu esperaria strMonthNo = 10 , mas não é. É 01!

Sem FORMAT, o valor está correto.

Como posso resolver isso?

    
por Karl 29.11.2016 / 16:28

2 respostas

2

A saída de Month é um número, não uma data.

Format(x,"mm") espera que x seja uma data, portanto, ele será processado em 10 de janeiro de 1900 e é por isso que o resultado é 1 .

Use apenas Format(Month(DateAdd("m", -1, Date)), "00")

    
por 29.11.2016 / 16:31
1

Você está fazendo a mesma coisa duas vezes.

DateAdd está lhe dando a data com a qual deseja trabalhar - A data de um mês atrás hoje. A função Month extrai o mês a partir dessa data - atualmente 10.

A função FORMAT está pegando esse mês - 10 - e interpretando-a como uma data completa, ou seja, 10 de janeiro de 1900. Isso é o que você está formatando para mostrar apenas o mês.

Você precisa remover MONTH ou FORMAT . Qualquer um desses deve funcionar:

strMonthNo = Format(DateAdd("m", -1, Date))

strMonthNo = Month(DateAdd("m", -1, Date))
    
por 29.11.2016 / 16:35