En este artículo, proporcionamos detalles sobre cómo ordenar las hojas de trabajo en el libro de trabajo en orden ascendente o descendente, según el nombre de la hoja de trabajo.
En el libro de trabajo adjunto, hay dos módulos: -
Módulo 1 contiene la macro "SortWorksheets" que se asigna al botón "Enviar" en la hoja "Macro".
Esta macro ordena todas las hojas de trabajo excepto la primera hoja de trabajo que es la hoja principal denominada "Macro".
Cuando el usuario hace clic en el botón "Enviar", todas las hojas después de la hoja "Macro" se ordenarán en orden ascendente o descendente según lo elija el usuario en el cuadro combinado.
Módulo2 contiene dos macros "AscendingSortOfWorksheets" y "DecendingSortOfWorksheets". Al ejecutar la macro "AscendingSortOfWorksheets", ordenará todas las hojas de trabajo presentes en el libro de trabajo en orden ascendente. Al ejecutar la macro "DecendingSortOfWorksheets", ordenará todas las hojas de trabajo presentes en el libro de trabajo en orden descendente.
Explicación lógica
El algoritmo de clasificación de burbujas se utiliza para clasificar las hojas de trabajo en el libro de trabajo.
El algoritmo de clasificación de burbujas compara cada elemento de la matriz con otro elemento de la matriz y los intercambia según se ordene en orden ascendente o descendente. En cada paso, burbujeará el valor más pequeño o más grande en la parte superior de la matriz. El algoritmo se repite hasta que se ordenan todos los elementos.
En este artículo, nuestro objetivo es ordenar las hojas de trabajo del libro por su nombre. El libro de trabajo que estamos usando consta de diferentes hojas de trabajo con nombres como Panel financiero, Recursos humanos y Panel de ventas.
Para lograr este objetivo, hemos utilizado el algoritmo de clasificación de burbujas para clasificar las hojas de trabajo.
Explicación del código
Macro SortWorksheets
Esta macro se ejecutará cuando el usuario haga clic en el botón enviar. Esta macro ordenará todas las hojas de trabajo en el libro de trabajo por sus nombres, excepto la primera hoja de trabajo en el libro de trabajo. Dependiendo del valor seleccionado por el usuario en el cuadro combinado, ordenará las hojas de trabajo en orden ascendente o descendente.
Para agregar un cuadro combinado, siga los pasos a continuación: -
-
Vaya a la pestaña Desarrollador> Haga clic en Insertar> Haga clic en el icono del cuadro combinado debajo del control de formulario
-
Haga clic derecho en el cuadro combinado y haga clic en control de formato.
-
Vaya a la pestaña de control, asigne el elemento y vincule el cuadro combinado con la celda XFC1.
ComboBoxValue = Rango ("XFC1"). Valor
El cuadro combinado de la hoja de trabajo "Macro" está vinculado con la celda XFC1. Entonces, para obtener valor de la celda XFC1, se usa la variable ComboBoxValue.
Para i = 2 Para SCount - 1
El ciclo FOR comienza con la variable i, el valor comienza en 2, ya que queremos excluir la primera hoja de trabajo del libro de trabajo de la clasificación.
Si ComboBoxValue = 1, entonces
La condición SI se utiliza para comprobar si se debe ordenar en orden ascendente o descendente. SI el valor de ComboBoxValue es 1, ordene en orden ascendente; de lo contrario, en orden descendente.
Hojas de trabajo ordenadas en orden ascendente
Hojas de trabajo ordenadas en orden descendente
AscendingSortOfWorksheets y DecendingSortOfWorksheets
Las macros AscendingSortOfWorksheets y DecendingSortOfWorksheets se pueden ejecutar presionando la tecla de acceso directo Alt + F8 o Ir a la pestaña Desarrollador> Hacer clic en Macro> seleccionar la macro y hacer clic en Ejecutar. Ordenarán todas las hojas de trabajo presentes dentro del libro de trabajo. Estas macros también se pueden ejecutar en otros libros de trabajo.
Hojas de trabajo ordenadas después de ejecutar la macro AscendingSortOfWorksheets
Hojas de trabajo ordenadas en orden ascendente DecendingSortOfWorksheets macro
Siga a continuación para obtener el código
Sub AscendingSortOfWorksheets () 'Ordenar hojas de trabajo en un libro de trabajo en orden ascendente Dim SCount, i, j As Integer' Para deshabilitar las actualizaciones de pantalla Application.ScreenUpdating = False 'Obteniendo el número total. de hojas de cálculo en el libro de trabajo SCount = Worksheets.Count 'Verificando la condición si el recuento de hojas de trabajo es mayor que 1, si el recuento es uno, entonces salga del procedimiento Si SCount = 1 Luego salga de Sub' Usando la clasificación de burbujas como algoritmo de clasificación 'Recorriendo todas las hojas de trabajo para i = 1 Para SCount - 1 'Hacer una comparación del nombre de la hoja seleccionada con otras hojas para mover la hoja seleccionada a la posición apropiada Para j = i + 1 To SCount If Worksheets (j) .NameHojas de trabajo (i) .Nombre Luego Hojas de trabajo (j). Mover antes: = Hojas de trabajo (i) Finalizar si es siguiente j Siguiente i Finalizar sub
Si te gustó este blog, compártelo con tus amigos en Facebook. Además, puede seguirnos en Twitter y Facebook.
Nos encantaría saber de usted, háganos saber cómo podemos mejorar nuestro trabajo y hacerlo mejor para usted. Escríbanos al sitio de correo electrónico