He buscado por todas partes y normalmente encuentro mi respuesta, sin embargo, esta es peculiar. Tengo que formatear una fecha para un programa de modo que no tenga barras diagonales en la fecha para escribir en una ruta de archivo. Puedo hacer que el aspecto en la celda aparezca como si estuviera usando guiones, pero el valor en la barra de fórmulas aún lo muestra con barras invertidas.

Por ejemplo, la fecha de hoy podría escribirse en la celda A1 como "10/18/2017" y aparecería en la celda que está escrita como "18-10-2017" , pero en la barra de fórmulas y cuando obtengo el valor de esa celda, sigue siendo 18/10/2017 . Estoy extrayendo el valor como: Range("A1").value

A continuación se muestra el código que estoy usando para intentar cambiar el valor real de la celda.

Range("A1").NumberFormat = "mm-dd-yyyy"

Esto hizo exactamente lo que mencioné anteriormente. Engaña al usuario para que piense que resolvió el problema, pero en realidad no. Entonces pensé bien, simplemente reemplacemos el carácter / ...

Range("A1").value = Replace(Range("A1").value, "/", "-")

Todavía no hay dados y no hay nada que pueda encontrar en las redes. Lo siento si esto ha sido respondido, busqué y busqué, incluso dentro de la pila

0
Calderon315 18 oct. 2017 a las 19:23

3 respuestas

La mejor respuesta

Usando Range("A1").Text en lugar de Range("A1").Value obtienes el formato que se aplicó a la celda.

0
stenci 18 oct. 2017 a las 16:28

Puedes formatear la cadena en el código

    Sub SaveIt()
    Dim s As String
    s = Format(Range("A1"), "mm-dd-yy")
    ActiveWorkbook.SaveAs Filename:="C:\Users\dmorrison\Downloads\" & s & ".xlsm", _
                          FileFormat:=xlOpenXMLWorkbookMacroEnabled, CreateBackup:=False
End Sub
0
Davesexcel 18 oct. 2017 a las 16:33

El valor que se muestra en la barra de fórmulas no tiene nada que ver con cómo está formateando la fecha en Excel.

Es una configuración de todo el sistema que tendrá que modificar yendo a Panel de control> Región e idioma.

Editar:

Y, como K.Davis dijo en su comentario, simplemente puede usar Format(rng, "mm-dd-yyyy") para nombrar los archivos.

1
user4066647user4066647 18 oct. 2017 a las 16:33