Monday, 9 October 2017

Excel Shift Right Binary Options


Tengo problemas para ingresar una fila entera en blanco. Im que intenta cambiar las columnas A-AD (cuatro columnas después de Z). Actualmente las células A-O tienen contenido. Las células O-AD están en blanco. Pero estoy corriendo una macro para poner los datos a la derecha de los datos actuales (columna O). Puedo insertar una fila usando pero sólo parece cambiar de A-O. Ive manejar para cambiar hacia abajo O-AD con un bucle for Hay una manera de cambiar 30 celdas VS 15 De manera similar, quiero cambiar 15 a las celdas a la derecha. Actualmente tengo otro para la configuración de bucle para eso. En cuanto al resto del código, está abajo. Básicamente la fusión de dos bases de hojas de Excel en la búsqueda de un partido en la columna A. He marcado el área problemática. El resto del código funciona en su mayor parte. 4 de abril a las 16:37 Operaciones de Excel en Excel VBA Presentamos plantillas de Excel Como todos sabemos que el mundialmente famoso Campeonato de Europa de la UEFA 2016 o simplemente el Euro 2016 comenzará en Francia el 10 de junio y terminará el 10 de julio de 2016 Copa América Centenario o 2016 Centennial Copa América torneo de fútbol masculino, que estaba programado para tener lugar en los Estados Unidos en el año 2016 Disfrute del calendario actual del Campeonato Mundial de Hockey sobre Hielo que se celebrará en 2014, donde todas las finales de los torneos de hockey del Campeonato Mundial de 2014 están allí Hoja de cálculo Excel para imprimir un plan de amortización de préstamos. La calculadora acomoda préstamos con hasta 40 años (o 480 períodos de pago mensuales) Ejemplo de uso de un cliente SSH simple para cargar y descargar archivos basados ​​en Excel. Es posible modificarlo para facilitar la automatización de tareas en el servidor remoto Excel VBA Artículos Excel VBA Development Hemos acumulado la experiencia necesaria en el desarrollo de aplicaciones que son fáciles de usar por nuestros clientes finales y son fáciles de mantener y actualizar por nuestros propios desarrolladores . Usted puede esperar el alto nivel de calidad y usabilidad como usted ve en nuestros propios proyectos. Respecto a los plazos y las fechas de vencimiento. Rendimiento de Excel 2010: Consejos para optimizar las obstrucciones de rendimiento Las siguientes secciones describen maneras de mejorar el rendimiento relacionado con tipos de referencias y enlaces. Referencia directa y referencia hacia atrás Para aumentar la claridad y evitar errores, diseñe sus fórmulas para que no se refieran hacia adelante (hacia la derecha o hacia abajo) a otras fórmulas o celdas. Por lo general, la referencia directa no afecta el rendimiento del cálculo, excepto en casos extremos para el primer cálculo de un libro, donde podría tardar más en establecer una secuencia de cálculo razonable si hay muchas fórmulas que necesitan tener su cálculo diferido. Referencias circulares con iteración Cálculo de referencias circulares con iteraciones es lento porque se necesitan cálculos múltiples. Con frecuencia se pueden desenrollar las referencias circulares para que el cálculo iterativo ya no sea necesario. Por ejemplo, en los cálculos de flujo de efectivo e intereses, trate de calcular el flujo de efectivo antes de intereses, luego calcule el interés y luego calcule el flujo de efectivo incluyendo los intereses. Excel calcula referencias circulares hoja por hoja sin considerar dependencias. Por lo tanto, normalmente obtiene un cálculo lento si sus referencias circulares abarcan más de una hoja de cálculo. Intente mover los cálculos circulares en una sola hoja de cálculo o optimizar la secuencia de cálculo de la hoja de trabajo para evitar cálculos innecesarios. Antes de iniciar los cálculos iterativos, Excel debe volver a calcular el libro para identificar todas las referencias circulares y sus dependientes. Este proceso es igual a dos o tres iteraciones del cálculo. Después de identificar las referencias circulares y sus dependientes, cada iteración requiere que Excel calcule no sólo todas las celdas de la referencia circular, sino también las celdas que dependen de las celdas de la cadena de referencia circular, junto con las células volátiles y sus dependientes. Si tiene un cálculo complejo que depende de las celdas en la referencia circular, puede ser más rápido aislar esto en un libro cerrado separado y abrirlo para volver a calcular después de que el cálculo circular haya convergido. Es importante reducir el número de células en el cálculo circular y el tiempo de cálculo que toman estas células. Enlaces entre los libros de trabajo Evite enlaces entre libros cuando sea posible: pueden ser lentos, fácilmente rotos y no siempre fáciles de encontrar y corregir. Usar menos libros de trabajo más grandes suele ser, pero no siempre, mejor que usar muchos libros más pequeños. Algunas excepciones a esto pueden ser cuando hay muchos cálculos de front-end que rara vez se recalculan que tiene sentido colocarlos en un libro independiente o cuando tiene RAM insuficiente. Trate de utilizar referencias de celdas directas simples que funcionan en libros cerrados. Al hacer esto, puede evitar recalcular todos los libros vinculados cuando vuelva a calcular cualquier libro. También puede ver los valores que Excel ha leído del libro cerrado, que es frecuentemente importante para depurar y auditar el libro. Si no puede evitar el uso de libros enlazados, intente tenerlos abiertos en lugar de cerrados y abra los libros que están enlazados antes de abrir los libros de trabajo vinculados. Enlaces entre hojas de trabajo El uso de muchas hojas de trabajo puede hacer que su libro sea más fácil de usar, pero generalmente es más lento calcular referencias a otras hojas de trabajo que referencias dentro de hojas de cálculo. En Excel 97 y Excel 2000, hojas de cálculo y libros se calculan en orden alfabético secuencia con cadenas de cálculo individuales. Con estas versiones, es importante nombrar las hojas de trabajo en una secuencia que coincida con el flujo de cálculos entre hojas de cálculo. Para ahorrar memoria y reducir el tamaño de archivo, Excel intenta almacenar información sobre el área sólo en una hoja de cálculo que se utilizó. Esto se llama el rango usado. A veces, varias operaciones de edición y de formato amplían el rango utilizado significativamente más allá de la gama que actualmente se consideraría utilizada. Esto puede causar obstrucciones de rendimiento y obstrucciones de tamaño de archivo. Puede comprobar el intervalo visible utilizado en una hoja de cálculo mediante CTRLEND. En caso de que esto sea excesivo, debería considerar eliminar todas las filas y columnas a continuación y a la derecha de su última celda utilizada real y luego guardar el libro. Cree primero una copia de seguridad. Si tiene fórmulas con intervalos que se extienden hacia o se refieren al área eliminada, estos rangos se reducirán en tamaño o se cambiarán a N / A. Cuando agrega frecuentemente filas o columnas de datos a sus hojas de trabajo, debe encontrar una forma de hacer que sus fórmulas de Excel se refieran automáticamente al área de datos nueva, en lugar de intentar encontrar y cambiar sus fórmulas cada vez. Puede hacerlo utilizando una amplia gama en sus fórmulas que se extiende más allá de sus límites de datos actuales. Sin embargo, esto puede causar un cálculo ineficiente bajo ciertas circunstancias, y es difícil de mantener porque la supresión de filas y columnas puede disminuir el rango sin que lo note. Referencias a la tabla estructurada A partir de Excel 2007, puede utilizar referencias de tabla estructurada, que se expanden y se contraen automáticamente a medida que aumenta o disminuye el tamaño de la tabla referenciada. Esta solución tiene varias ventajas: Hay menos desventajas de rendimiento que las alternativas de referencia de columna completa y rangos dinámicos. Es fácil tener múltiples tablas de datos en una sola hoja de trabajo. Las fórmulas incrustadas en la tabla también se expanden y se contraen con los datos. Referencias completas de columnas y filas Un enfoque alternativo es utilizar una referencia de columna completa, por ejemplo A: A. Esta referencia devuelve todas las filas de la columna A. Por lo tanto, puede agregar tantos datos como desee y la referencia siempre lo incluirá. Esta solución tiene ventajas y desventajas: muchas funciones incorporadas de Excel (SUM. SUMIF) calculan referencias de columna completas de manera eficiente porque reconocen automáticamente la última fila utilizada en la columna. Sin embargo, las funciones de cálculo de matriz como SUMPRODUCT tampoco pueden manejar referencias de columna completa o calcular todas las celdas de la columna. Las funciones definidas por el usuario no reconocen automáticamente la última fila utilizada en la columna y, por lo tanto, frecuentemente calculan referencias de columna completas de manera ineficiente. Sin embargo, es fácil programar las funciones definidas por el usuario para que reconozcan la última fila utilizada. Es difícil utilizar referencias de columna completa cuando tiene varias tablas de datos en una sola hoja de cálculo. Las fórmulas de matriz en versiones anteriores a Excel 2007 no pueden controlar referencias de columna completa. En Excel 2007, las fórmulas de matriz pueden manejar referencias de columna completa, pero esto obliga a calcular todas las celdas de la columna, incluidas las celdas vacías. Esto puede ser lento para calcular, especialmente para 1 millón de filas. Rangos dinámicos Mediante el uso de las funciones OFFSET y COUNTA en la definición de un rango con nombre, puede hacer que el área al que se refiere el rango nombrado se expanda dinámicamente y contraiga. Por ejemplo, cree un nombre definido de la siguiente manera: También puede utilizar funciones como INDIRECT para construir rangos dinámicos. Los rangos dinámicos tienen las siguientes ventajas y desventajas: Los rangos dinámicos funcionan bien para limitar el número de cálculos realizados por las fórmulas de matriz. El uso de múltiples rangos dinámicos con una sola columna requiere funciones de conteo de propósito especial. El uso de muchos rangos dinámicos puede disminuir el rendimiento. Las búsquedas son frecuentemente obstrucciones de cálculo significativas. Afortunadamente, hay muchas maneras de mejorar el tiempo de cálculo de la búsqueda. Si utiliza la opción de coincidencia exacta, el tiempo de cálculo de la función es proporcional al número de celdas analizadas antes de que se encuentre una coincidencia. Para las búsquedas en rangos grandes, este tiempo puede ser significativo. Tiempo de búsqueda usando las opciones aproximadas de coincidencia de VLOOKUP. HLOOKUP. Y MATCH en los datos clasificados es rápido y no se incrementa significativamente por la longitud del rango que está buscando. Las características son las mismas que la búsqueda binaria. Opciones de búsqueda Asegúrese de que entiende las opciones de tipo de coincidencia y rango de búsqueda en MATCH. VLOOKUP. Y HLOOKUP. El siguiente ejemplo de código muestra la sintaxis de la función MATCH. Para obtener más información, vea el método Match del objeto WorksheetFunction. Matchtype1 devuelve la coincidencia mayor igual o menor que el valor de búsqueda si la matriz de búsqueda se ordena ascendente (coincidencia aproximada). Esta es la opción por defecto. Matchtype0 solicita una coincidencia exacta y asume que los datos no se ordenan. Matchtype-1 devuelve la coincidencia más pequeña igual o mayor que el valor de búsqueda si la matriz de búsqueda se ordena descendiendo (concordancia aproximada). El siguiente ejemplo de código muestra la sintaxis para las funciones VLOOKUP y HLOOKUP. Para obtener más información, vea los métodos VLOOKUP y HLOOKUP del objeto WorksheetFunction. Range-lookupTRUE devuelve el mayor coincidencia menor o igual que el valor de búsqueda (coincidencia aproximada). Esta es la opción por defecto. La matriz de tablas debe clasificarse en orden ascendente. Range-lookupFALSE solicita una coincidencia exacta y asume que los datos no están ordenados. Evite realizar búsquedas en datos no clasificados donde sea posible porque es lenta. Si los datos están ordenados, pero desea una coincidencia exacta, vea Datos ordenados con valores que faltan. VLOOKUP vs INDEX y MATCH o OFFSET Intente utilizar las funciones INDEX y MATCH en lugar de VLOOKUP. VLOOKUP es ligeramente más rápido (aproximadamente 5 por ciento más rápido), más simple y utiliza menos memoria que una combinación de MATCH e INDEX. O OFFSET. Sin embargo, la flexibilidad adicional que ofrece MATCH e INDEX le permite ahorrar mucho tiempo. Por ejemplo, puede almacenar el resultado de un MATCH exacto en una celda y volver a usarlo en varias sentencias INDEX. La función INDEX es rápida y es una función no volátil, que acelera el recálculo. La función OFFSET también es rápida. Sin embargo, es una función volátil, ya veces aumenta significativamente el tiempo que se tarda en procesar la cadena de cálculo. Es fácil convertir VLOOKUP a INDEX y MATCH. Las siguientes dos sentencias devuelven la misma respuesta. Aceleración de las búsquedas Debido a que las búsquedas de coincidencias exactas pueden ser lentas, tenga en cuenta las siguientes opciones para mejorar el rendimiento: Utilice una hoja de cálculo. Es más rápido mantener búsquedas y datos en la misma hoja. Cuando se puede, clasificar los datos en primer lugar (SORT es rápido), y utilizar coincidencia aproximada. Cuando debe utilizar una búsqueda de coincidencia exacta, restrinja el rango de celdas a escanear a un mínimo. Utilice nombres de rango dinámico en lugar de referirse a un gran número de filas o columnas. A veces se puede pre-calcular un límite de rango inferior y un límite de rango superior para la búsqueda. Datos ordenados con valores faltantes Dos coincidencias aproximadas son significativamente más rápidas que una coincidencia exacta para una búsqueda en más de unas cuantas filas. (El punto de equilibrio es de aproximadamente 10-20 filas.) Si puede ordenar sus datos pero todavía no puede utilizar coincidencia aproximada porque no puede estar seguro de que el valor que busca aparece en el rango de búsqueda, puede utilizar esta fórmula. Las fórmulas de matriz y la función SUMPRODUCT son potentes, pero debe manejarlas cuidadosamente. Una fórmula de matriz única puede requerir un gran número de cálculos. La clave para optimizar la velocidad de cálculo de las fórmulas de matriz es asegurar que el número de celdas y expresiones que se evalúan en la fórmula de matriz es lo más pequeño posible. Recuerde que una fórmula de matriz es un poco como una fórmula volátil: Si alguna de las células que hace referencia ha cambiado, es volátil, o ha sido recalculado, la fórmula de matriz calcula todas las células de la fórmula y evalúa todas las células virtuales que Tiene que hacer el cálculo. Para optimizar la velocidad de cálculo de las fórmulas de matrices: Tome las expresiones y las referencias de rangos fuera de las fórmulas de matrices en columnas y filas auxiliares separadas. Esto hace mucho mejor uso del proceso de cálculo inteligente en Excel. No haga referencia a filas completas o más filas y columnas de las que necesita. Las fórmulas de matriz se ven obligadas a calcular todas las referencias de celda en la fórmula incluso si las celdas están vacías o no utilizadas. Con 1 millón de filas disponibles a partir de Excel 2007, una fórmula de matriz que hace referencia a una columna completa es extremadamente lenta para calcular. A partir de Excel 2007, utilice referencias estructuradas donde pueda mantener el número de celdas que son evaluadas por la fórmula de matriz a un mínimo. En versiones anteriores a Excel 2007, utilice nombres de rango dinámico siempre que sea posible. Aunque son volátiles, vale la pena porque minimizan el tamaño de los rangos. Tenga cuidado con fórmulas de matriz que hacen referencia tanto a una fila como a una columna: esto obliga al cálculo de un rango rectangular. Utilice SUMPRODUCT si es posible es ligeramente más rápido que la fórmula de matriz equivalente. Fórmulas de matriz SUM con varias condiciones A partir de Excel 2007, siempre debe utilizar SUMIFS. COUNTIFS. Y AVERAGEIFS funciones en lugar de fórmulas de matriz donde se puede porque son mucho más rápido de calcular. En las versiones anteriores a Excel 2007, las fórmulas de matriz se utilizan a menudo para calcular una suma con varias condiciones. Esto es relativamente fácil de hacer, especialmente si utiliza el Asistente de suma condicional en Excel, pero a menudo es lento. Por lo general, hay formas mucho más rápidas de obtener el mismo resultado. Si sólo tiene unas SUM de varias condiciones, es posible que pueda utilizar la función DSUM, que es mucho más rápida que la fórmula de matriz equivalente. Si debe utilizar fórmulas de matriz, algunos buenos métodos para acelerarlas son los siguientes: Utilice nombres de rango dinámico o referencias de tabla estructurada para minimizar el número de celdas. Divida las condiciones múltiples en una columna de fórmulas auxiliares que devuelven True o False para cada fila y, a continuación, haga referencia a la columna auxiliar en una fórmula SUMIF o matriz. Esto puede no parecer reducir el número de cálculos para una fórmula de matriz única, pero de hecho, la mayoría de las veces, permite que el proceso de cálculo inteligente vuelva a calcular sólo las fórmulas en la columna de ayuda que necesitan ser recalculadas. Considere la posibilidad de concatenar todas las condiciones en una sola condición y, a continuación, utilizando SUMIF. Si los datos pueden ordenarse, una buena técnica es contar grupos de filas y limitar las fórmulas de matriz a mirar los grupos de subconjuntos. Utilizar SUMPRODUCT para fórmulas de matriz de varias condiciones A partir de Excel 2007, siempre debe utilizar SUMIFS. COUNTIFS. Y AVERAGEIFS funciones en lugar de SUMPRODUCT fórmulas siempre que sea posible. En versiones anteriores, hay algunas ventajas al utilizar SUMPRODUCT en lugar de fórmulas de matriz SUM: SUMPRODUCT no tiene que ser matriz-introducido mediante CTRLSHIFTENTER. SUMPRODUCT suele ser ligeramente más rápido (5 a 10 por ciento). Puede utilizar SUMPRODUCT para fórmulas de matriz de condición múltiple como sigue. Estas tres fórmulas todas producen el mismo resultado, pero la tercera fórmula, que utiliza la sintaxis de la coma para SUMPRODUCT. Toma solamente cerca de 77 por ciento del tiempo para calcular que las otras dos fórmulas necesitan. Obstrucciones del cálculo de matrices y funciones El motor de cálculo de Excel está optimizado para explotar las fórmulas y las funciones de la matriz que hacen referencia a los rangos. Sin embargo, algunos arreglos inusuales de estas fórmulas y funciones pueden a veces, pero no siempre, causar un aumento significativo del tiempo de cálculo. Si encuentra una obstrucción de cálculo que implica fórmulas de matriz y funciones de rango, debe buscar lo siguiente: Referencias parcialmente superpuestas. Fórmulas de matriz y funciones de rango que hacen referencia a parte de un bloque de celdas que se calculan en otra fórmula de matriz o función de rango. Esta situación puede ocurrir frecuentemente en el análisis de series temporales. Un conjunto de fórmulas que hacen referencia por fila y un segundo conjunto de fórmulas que hace referencia al primer conjunto por columna. Un gran conjunto de fórmulas de una sola fila que cubren un bloque de columnas, con funciones SUM al pie de cada columna. Las funciones amplían considerablemente la potencia de Excel, pero la forma en que las usa a menudo puede afectar el tiempo de cálculo. Funciones que manejan rangos Para funciones como SUM. SUMIF. Y SUMIFS que manejan intervalos, el tiempo de cálculo es proporcional al número de celdas usadas que está sumando o contando. Las células no utilizadas no se examinan, por lo que las referencias de columna completa son relativamente eficientes, pero es mejor asegurarse de que no incluya más células usadas de las que necesita. Utilice tablas, o calcule rangos de subconjuntos o rangos dinámicos. Funciones volátiles Las funciones volátiles pueden retrasar el cálculo debido a que aumentan el número de fórmulas que se deben recalcular en cada cálculo. A menudo puede reducir el número de funciones volátiles utilizando INDEX en lugar de OFFSET. Y CHOOSE en lugar de INDIRECT. Pero OFFSET es una función rápida y puede usarse a menudo de formas creativas que le dan un cálculo rápido. Funciones definidas por el usuario Las funciones definidas por el usuario que se programan en C o C y que utilizan la API C (funciones de complemento XLL) generalmente se desempeñan más rápido que las funciones definidas por el usuario que se desarrollan utilizando VBA o Automatización (complementos XLA o Automation) ). Para obtener más información, consulte Desarrollo de XLLs de Excel 2010. Las funciones XLM también pueden ser rápidas, ya que utilizan la misma API fuertemente acoplada que las funciones adicionales de C XLL. El rendimiento de las funciones definidas por el usuario de VBA es sensible a la forma de programarlas y llamarlas. Funciones definidas por el usuario de VBA más rápidas Normalmente es más rápido utilizar los cálculos de fórmula de Excel y las funciones de hoja de cálculo que usar las funciones definidas por el usuario de VBA. Esto se debe a que hay una pequeña sobrecarga para cada llamada de función definida por el usuario y una importante transferencia de información desde Excel a la función definida por el usuario. Pero las funciones bien diseñadas y llamadas definidas por el usuario pueden ser mucho más rápidas que las fórmulas de matrices complejas. Asegúrese de que ha puesto todas las referencias a celdas de hoja de cálculo en los parámetros de entrada de función definidos por el usuario en lugar de en el cuerpo de la función definida por el usuario, de modo que puede evitar agregar Application. Volatile innecesariamente. Si debe tener un gran número de fórmulas que utilizan funciones definidas por el usuario, asegúrese de que está en modo de cálculo manual y de que el cálculo se inicia desde VBA. Las funciones definidas por el usuario de VBA se calculan mucho más lentamente si el cálculo no se llama desde VBA (por ejemplo, en modo automático o cuando presiona F9 en modo manual). Esto es particularmente cierto cuando el Editor de Visual Basic (ALTF11) está abierto o se ha abierto en la sesión de Excel actual. Puede interceptar F9 y redirigirlo a una subrutina de cálculo de VBA como sigue. Agregue esta subrutina al módulo Thisworkbook. Si su función definida por el usuario utiliza funciones de hoja de cálculo o métodos de modelo de objetos de Excel para procesar un intervalo, generalmente es más eficiente mantener el rango como una variable de objeto que transferir todos los datos de Excel a la función definida por el usuario. Hay una sobrecarga de tiempo para cada llamada a una función definida por el usuario y para cada transferencia de datos desde Excel a VBA. A veces, una fórmula de matriz de varias celdas función definida por el usuario puede ayudar a minimizar estos overheads combinando múltiples llamadas de función en una sola función con un rango de entrada de celdas múltiples que devuelve un rango de respuestas. SUM y SUMIF Las funciones Excel SUM y SUMIF se utilizan frecuentemente en un gran número de celdas. El tiempo de cálculo para estas funciones es proporcional al número de celdas cubiertas, así que trate de minimizar el rango de celdas que las funciones están haciendo referencia. Wildcard SUMIF y COUNTIF Puede utilizar los caracteres comodín. (Cualquier carácter individual) y (sin carácter o cualquier número de caracteres) como parte de los criterios SUMIF y COUNTIF en rangos alfabéticos. Súmulas acumuladas a la fecha y acumuladas Existen dos métodos para hacer las SOM acumuladas hasta la fecha o acumulativas. Suponga que los números que desea SUM acumulativamente en la columna A, y desea que la columna B contenga la suma acumulada puede hacer una de las siguientes: Puede crear una fórmula en la columna B como SUM (A1: A2) y arrastrar Hasta abajo en la medida en que usted necesita. La celda inicial de la SUM está anclada en A1, pero como la celda de acabado tiene una referencia de fila relativa, aumenta automáticamente para cada fila. Puede crear una fórmula como A1 en la celda B1 y B1A2 en B2 y arrástrela hacia abajo hasta donde necesite. Esto calcula la celda acumulativa agregando este número de filas a la SUM acumulativa anterior. Para 1.000 filas, el primer método hace que Excel haga unos 500.000 cálculos, pero el segundo método hace que Excel haga sólo unos 2.000 cálculos. Suma de subconjuntos Cuando tiene varios índices ordenados en una tabla (por ejemplo, Sitio dentro de Área), puede ahorrar tiempo de cálculo significativo calculando dinámicamente la dirección de un subconjunto de filas (o columnas) que se usará en la función SUM o SUM: Calcular la dirección de un subconjunto Rango de fila o columnas Cuenta el número de filas para cada bloque de subconjunto. Agregue los recuentos acumulativamente para cada bloque para determinar su fila de inicio. Utilice OFFSET con la fila de inicio y conteo para devolver un rango de subconjunto a SUM o SUMIF que cubra sólo el bloque de subconjuntos de filas. Subtotales Utilice la función SUBTOTAL para SUM las listas filtradas. La función SUBTOTAL es útil porque, a diferencia de SUM. Ignora lo siguiente: Filas ocultas que resultan del filtrado de una lista. A partir de Excel 2003, también puede hacer que SUBTOTAL ignore todas las filas ocultas, no sólo filas filtradas. Otras funciones SUBTOTAL. D Funciones El DFunciones DSUM. CUENTA. Desvarios Y así sucesivamente son significativamente más rápidos que las fórmulas de matriz equivalente. La desventaja de las funciones D es que los criterios deben estar en un rango separado, lo que los hace poco prácticos de usar y mantener en muchas circunstancias. A partir de Excel 2007, debe utilizar SUMIFS. COUNTIFS. Y funciones AVERAGEIFS en lugar de las funciones D. Las siguientes secciones describen algunos consejos básicos para crear macros VBA más rápidas. Desactivar todo, pero los elementos esenciales mientras se ejecuta el código Para mejorar el rendimiento de las macros de VBA, apague explícitamente la funcionalidad que no se requiere mientras se ejecuta el código. A menudo, un nuevo cálculo o un redibujo después de ejecutar el código es todo lo que es necesario, y puede mejorar el rendimiento. Una vez que se ejecuta el código, restaure la funcionalidad a su estado original. La siguiente funcionalidad normalmente se puede desactivar mientras se ejecuta la macro VBA: Application. ScreenUpdating Desactivar la actualización de la pantalla. Si Application. ScreenUpdating está establecido en False Excel no vuelve a dibujar la pantalla. Mientras el código ejecuta la pantalla se actualiza rápidamente y normalmente no es necesario que el usuario vea cada actualización. Actualizar la pantalla una vez, después de que el código se ejecuta, mejora el rendimiento. Application. DisplayStatusBar Desactive la barra de estado. Si Application. DisplayStatusBar está establecido en False Excel no muestra la barra de estado. La configuración de la barra de estado está separada de la configuración de actualización de la pantalla de modo que todavía puede mostrar el estado de la operación actual incluso mientras la pantalla no se está actualizando. Sin embargo, si no necesita mostrar el estado de cada operación, desactivar la barra de estado mientras el código se ejecuta también mejora el rendimiento. Application. Calculation Cambia al cálculo manual. Si Application. Calculation se establece en xlCalculationManual Excel sólo calcula el libro cuando el usuario inicia explícitamente el cálculo. En el modo de cálculo automático, Excel determina cuándo calcular. Por ejemplo, cada vez que un valor de celda que está relacionado con una fórmula cambia, Excel vuelve a calcular la fórmula. Si cambia el modo de cálculo a manual, puede esperar hasta que todas las celdas asociadas con la fórmula se actualicen antes de volver a calcular el libro. Al volver a calcular el libro cuando sea necesario mientras se ejecuta el código, puede mejorar el rendimiento. Application. EnableEvents Desactivar eventos. Si Application. EnableEvents está establecido en False Excel no genera eventos. Si hay complementos que escuchan para eventos de Excel, esos complementos consumen recursos en el equipo mientras registran los eventos. Si no es necesario que el complemento registre los sucesos que se producen mientras se ejecuta el código, desactivar eventos mejora el rendimiento. ActiveSheet. DisplayPageBreaks Desactivar los saltos de página. Si ActiveSheet. DisplayPageBreaks está establecido en False Excel no muestra saltos de página. No es necesario volver a calcular los saltos de página mientras se ejecuta el código y calcular los saltos de página después de ejecutar el código mejora el rendimiento. La siguiente es una lista de optimizaciones de rendimiento adicionales que puede utilizar en su código VBA: Devolver resultados asignando una matriz directamente a un rango. Declarar variables con tipos explícitos para evitar la sobrecarga de determinar el tipo de datos, posiblemente varias veces en un bucle, durante la ejecución del código. Para funciones simples que utiliza con frecuencia en su código, implemente las funciones usted mismo en VBA en lugar de utilizar el objeto WorksheetFunction. Para obtener más información, vea Funciones definidas por el usuario VBA más rápidas. Utilice el método Range. SpecialCells para reducir el número de celdas con las que interactúa su código. Considere las ganancias de rendimiento si implementó su funcionalidad utilizando la API C en el SDK XLL. Para obtener más información, consulte la documentación de XLL SDK de Excel 2010. A partir de Excel 2007, Excel contiene una amplia variedad de formatos de archivo en comparación con versiones anteriores. Ignorando las variaciones de formato de archivo Macro, Plantilla, Complemento, PDF y XPS, existen tres formatos principales: XLS, XLSB y XLSX. Formato XLS El formato XLS tiene el mismo formato que las versiones anteriores. Cuando utiliza este formato, está restringido a 256 columnas y 65.536 filas. Cuando guarda un libro de Excel 2007 o Excel 2010 en formato XLS, Excel ejecuta una comprobación de compatibilidad. El tamaño del archivo es casi el mismo que las versiones anteriores (puede almacenarse información adicional) y el rendimiento es ligeramente más lento que las versiones anteriores. Cualquier optimización de múltiples hilos que hace Excel con respecto al orden de cálculo de celda no se guarda en el formato XLS. Por lo tanto, el cálculo de un libro puede ser más lento después de guardar el libro en el formato XLS, cerrar y volver a abrir el libro. Formato XLSB XLSB es el formato binario que comienza en Excel 2007. Está estructurado como una carpeta comprimida que contiene un gran número de archivos binarios. Es mucho más compacto que el formato XLS, pero la cantidad de compresión depende mucho del contenido del libro. Por ejemplo, diez libros muestran un factor de reducción de tamaño que va de dos a ocho con un factor de reducción promedio de cuatro. A partir de Excel 2007, la apertura y el ahorro de rendimiento es sólo un poco más lento que el formato XLS. Formato XLSX XLSX es el formato XML que comienza en Excel 2007 y es el formato predeterminado que comienza en Excel 2007. El formato XLSX es una carpeta comprimida que contiene un gran número de archivos XML (si cambia la extensión de nombre de archivo a. zip, Puede abrir la carpeta comprimida y examinar su contenido). Normalmente, el formato XLSX crea archivos más grandes que el formato XLSB (1,5 veces más grande en promedio), pero siguen siendo significativamente más pequeños que los archivos XLS. Debe esperar que los tiempos de apertura y ahorro sean un poco más largos que para los archivos XLSB.

No comments:

Post a Comment