Access - Formula errónea de Access a Excel

 
Vista:

Formula errónea de Access a Excel

Publicado por Leire (8 intervenciones) el 14/06/2002 11:35:58
Hola, buenas.

Estoy haciendo un procedimiento en el que desde un botón voy rellenando unas celdas de una hoja excel. Para ello lo q hago es:

formula = \"=SI(J\" & 158 & \"=0;F\" & 158 & \"-H\" & 158 & \"-Q\" & 158 & \";F\" & 158 & \"-H\" & 158 & \"-Q\" & 158 & \"+J\" & 157 & \")\"
WKSS.Cells(158, 10).formula = formula

pero al intentar asignar esta fórnula me da un error que dice: Error definido por la aplicación o el objeto.

Sin embargo, en otras celdas he puesto fórmulas, más sencillas, y lo hace perfectamente, como por ejemplo: =G159+F160.

No sé si el problema es por la Suma, por tener tantos punto y coma y paréntesis o por qué. Lo curioso además es que saco la formula en un inputbox, la pego en la celda de excel y funciona!!!!!!!!!!!!!!!!!!!! Ahora sí q ya no entiendo nada!!!!!!!!!!!!!!!!!

Sabe alguien por qué puede ser?

Gracias y un saludo
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
Imágen de perfil de Alejandro

Formula errónea de Access a Excel

Publicado por Alejandro (4142 intervenciones) el 21/04/2023 19:43:27
Parece que el problema puede estar en la forma en que estás escapando los caracteres en la cadena de fórmula. En lugar de utilizar la barra invertida "" para escapar los caracteres, intenta utilizar dos comillas dobles "" para representar una comilla doble dentro de la cadena.

Por ejemplo, la fórmula que estás intentando asignar podría quedar así:

1
2
formula = "=SI(J" & 158 & "=0;F" & 158 & "-H" & 158 & "-Q" & 158 & ";F" & 158 & "-H" & 158 & "-Q" & 158 & "+J" & 157 & ")"
WKSS.Cells(158, 10).formula = formula

En lugar de esto:

1
2
formula = \"=SI(J\" & 158 & \"=0;F\" & 158 & \"-H\" & 158 & \"-Q\" & 158 & \";F\" & 158 & \"-H\" & 158 & \"-Q\" & 158 & \"+J\" & 157 & \")\"
WKSS.Cells(158, 10).formula = formula

También puedes intentar asignar la fórmula directamente sin utilizar una variable intermedia, como en el siguiente ejemplo:

1
WKSS.Cells(158, 10).formula = "=SI(J" & 158 & "=0;F" & 158 & "-H" & 158 & "-Q" & 158 & ";F" & 158 & "-H" & 158 & "-Q" & 158 & "+J" & 157 & ")"

Espero que esto te ayude a solucionar el problema.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar