|
NavegaciónInicio de sesiónEn lÃneaEn este momento hay 1 usuario y 66 invitados en lÃnea.
|
FormulaArray de más de 255 caracteres desde VBAEsta mañana hemos tenido un problema serio en la oficina. Estamos tratando de introducir una fórmula matricial en unas celdas mediante VBA. Todo correcto hasta que en una de las fórmulas se producÃa un error, motivado porque la longitud de la cadena con la fórmula no puede exceder los 255 caracteres. No los puede exceder en VBA, porque manualmente sà se pueden escribir fórmulas matriciales más largas. Qué curiosa limitación. Supongo que aunque han actualizado Excel para que admita textos más largos trabajando normalmente (esto ya con la versión 2000 o antes), no han tenido tiempo de actualizar las clases de VBA para que se comporten de la misma manera. ¿Cómo lo hemos solucionado? Tras numerosas pruebas infructuosas, lo que resolvió el problema ha sido tratar de reproducir con la macro la introducción manual, mediante la instrucción SendKeys. Este método envÃa pulsaciones de teclas al sistema, es como si pulsases las teclas manualmente. La solución ha sido poner en la primera celda del rango la fórmula normalmente (para la fórmula no matricial no se produce el error si la cadena supera los 255 caracteres), luego seleccionar el rango que ocupará la matriz y con SendKeys reproduzco lo que harÃa a mano, esto es, pulsar [F2] para editar la fórmula y después pulsar [Ctrl][Mays][Intro] para introducirla como fórmula matricial... y sorprendentemente Funciona. Sólo hay que tener la precaución de que se encuentre activa la celda que queremos editar, como si lo fuésemos a hacer a mano. Otra precaución es devolver el control al sistema operativo para que interprete las pulsaciones. Esto se consigue con el método DoEvents antes de las instrucciones SendKeys. Espero que este truco pueda servir para resolver ésta y otras situaciones en que existe un desfase entre lo que Excel (o culaquier otro programa) puede hacer manualmente y lo que puede hacer desde programación con una macro. ¿sabes Excel, pero necesitas más? entonces mira este manual
Enviado por pacomegia el 2 Abril, 2009 - 22:04. Contestar |
cargando...
Buscar en necesitomas.com |