Clasificación de datos de texto en orden alfabético usando VBA en Microsoft Excel

Anonim

En este artículo, crearemos una función personalizada para ordenar los datos en orden alfabético.

Los datos brutos consisten en nombres aleatorios que queremos ordenar.

Explicación lógica

Hemos creado la función personalizada "SortString" para ordenar los datos alfabéticamente. Toma el rango y la posición de la fuente como entradas y devuelve valores basados ​​en la posición especificada. Esta función primero crea una matriz ordenada y luego la posición especificada se usa para extraer el valor requerido de la matriz ordenada.

Explicación del código

UBound (valores)

La función anterior se usa para obtener el recuento del número de valores dentro de la matriz.

valores (j) = valores (j - 1)

El código anterior se usa para cambiar los valores dentro de la matriz en un índice.

Siga a continuación para obtener el código

 Opción Función explícita SortString (Origen como rango, Posición como largo) Como cadena 'Declarar variables Atenuar celda Como rango Valores de atenuación () Como cadena Dim i Tan largo, j Tan largo Dim Hecho como valores booleanos ReDim (1 a 1)' Recorrer en bucle todas las celdas en el rango Para cada celda en origen Hecho = Falso i = 1 'Creando una matriz de nombre ordenado Do If Cell.Value <valores (i) Entonces Listo = Verdadero Else i = i + 1 Fin If Loop While Done = False Y i <= UBound (valores) ReDim Preservar valores (1 a UBound (valores) + 1) Si i <= UBound (valores) Entonces 'Ajuste del valor en la matriz de nombres ordenados Para j = UBound (valores) A ​​i + 1 Paso - 1 valores (j) = valores (j - 1) Siguiente j End If valores (i) = Cell.Value Next Cell 'Asignación del valor de la posición requerida SortString = valores (Posición + 1) Fin Función 

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