Error al dar formato de numero a un rango excel desde vb.net

Iniciado por eotinianor, 3 Diciembre 2020, 18:42 PM

0 Miembros y 1 Visitante están viendo este tema.

eotinianor

Este código:
            objHojaExcel.Range("h16:h52").NumberFormat = "S/ #,##0.0000"

Me da el error 'no se puede asignar la propiedad number format de la clase range'

Este error sólo aparece en los equipos cliente, no en la pc donde tengo instalado el vb.net

Necesito asignar formato numérico de 2 o 4 dígitos decimales en un archivo excel, dependiendo de la respuesta a un MessageBox, ya tengo todo el código, sólo me falta solucionar ese error.

Si alguien pudiera apoyarme, le agradezco de antemano

EdePC

Que raro que te permita introducir caracteres como S/ así tal cual, a mi me funciona escapando dichos caracteres con doble comillas:

Código (vb) [Seleccionar]
objHojaExcel.Range("h16:h52").Range("h16:h52").NumberFormat = """S/ ""#,##0.0000"

El símbolo de soles no pertenece al juego de caracteres permitido para NumberFormat, el carácter de moneda por defecto es $, es decir, puedes utilizar la configuración de formato del sistema o que el usuario haya fijado en su excel con:

Código (vb) [Seleccionar]
objHojaExcel.Range("h16:h52").Range("h16:h52").NumberFormat = "$ #,##0.0000"

- Si el formato de moneda del excel o sistema tiene como símbolo el de Soles, pues se mostrará algo así: S/. 123.456.789,1234 aunque yo tengo configurado como separador de miles al espacio y al de decimales al punto: S/. 123 456 789.1234

Claro que si quieres poner un símbolo de moneda fijo lo tienes que poner entre comillas, pero como está en un String lo tienes que escapar con doble comillas.

eotinianor

Buenos días, efectivamente esa era la solución, el formato de soles se tiene que escapar con doble comillas, lo extraño es cómo funcionaba sin escapar en mi pc.

Muchas gracias amigo EdePC.

Doy por terminado el tema.