En otro foro que atiendo se planteaba la siguiente cuestión:
La respuesta más simple y directa es emplear el método Worksheets.EVALUATE, el cual convierte un nombre de Microsoft Excel en un objeto o un valor.
Qué debemos saber de este método:
-Podemos usar cualquier referencia a una sola celda en la notación de estilo A1. Todas las referencias se consideran absolutas.
-Con las referencias podremos usar los operadores de rango, intersección y unión (dos puntos, espacio y punto y coma, respectivamente).
-Es posible especificar cualquier nombre en el lenguaje de la macro.
-También podemos usar el operador ! para hacer referencia a una celda o un nombre definido en otro libro. Por ejemplo, Evaluate("[Libro1.xlsx]Hoja1!A1").
Para resolver nuestra cuestión en particular, insertamos el siguiente código dentro de la ventana de código de un módulo estándar desde el editor de VB:
Finalmente bastará escribir la función UDF 'CalculaTexto' en cualquier celda de la hoja, indicando la celda de referencia.
El resultado:
Si A1 tiene el texto "2^3+1" o "16/2-(1/3)^-1" quiero que B1 efectúe las operaciones y dar como resultado 9 o 5 |
La respuesta más simple y directa es emplear el método Worksheets.EVALUATE, el cual convierte un nombre de Microsoft Excel en un objeto o un valor.
Qué debemos saber de este método:
-Podemos usar cualquier referencia a una sola celda en la notación de estilo A1. Todas las referencias se consideran absolutas.
-Con las referencias podremos usar los operadores de rango, intersección y unión (dos puntos, espacio y punto y coma, respectivamente).
-Es posible especificar cualquier nombre en el lenguaje de la macro.
-También podemos usar el operador ! para hacer referencia a una celda o un nombre definido en otro libro. Por ejemplo, Evaluate("[Libro1.xlsx]Hoja1!A1").
Para resolver nuestra cuestión en particular, insertamos el siguiente código dentro de la ventana de código de un módulo estándar desde el editor de VB:
Function CalculaTexto(celda As Range) As Variant CalculaTexto = ActiveSheet.Evaluate(celda.Value) End Function
Finalmente bastará escribir la función UDF 'CalculaTexto' en cualquier celda de la hoja, indicando la celda de referencia.
El resultado:
Hola Que tal, entiendo el objetivo de la aplicación, muchas gracias por el ejemplo
ResponderEliminar;-)
EliminarGracias a ti!
Slds