VBA para recorrer filas de tabla en Excel (11 métodos)

  • Compartir Este
Hugh West

Cuando tenemos un gran conjunto de datos en nuestro libro de Excel, a veces es conveniente si podemos hacer un bucle a través de las filas para extraer los resultados específicos que queremos obtener. Implementación de VBA es el método más eficaz, rápido y seguro para ejecutar cualquier operación en Excel. En este artículo, le mostraremos 11 métodos diferentes sobre cómo recorrer las filas de una tabla en Excel con el botón Macro VBA .

Descargar el cuaderno de ejercicios

Puede descargar gratuitamente el libro de ejercicios de Excel desde aquí.

Recorrer filas de una tabla con VBA.xlsm

11 Métodos con VBA para Recorrer Filas de Tabla en Excel

En esta sección aprenderá a recorrer las filas de una tabla con 11 métodos diferentes, como recorrer las filas hasta encontrar una celda en blanco, recorrer las filas hasta encontrar un valor específico, recorrer las filas y colorear una celda específica, etc. con VBA en Excel.

Arriba se muestra el conjunto de datos de ejemplo que seguirá este artículo para describir los métodos.

1. Incrustar VBA para recorrer cada celda de cada fila de una tabla por número de referencia de celda

Si desea recorrer cada celda de cada fila de una tabla en su hoja de cálculo Excel y obtenga el número de referencia de la celda como valor de retorno Siga los pasos que se indican a continuación.

Pasos:

  • Al principio, pulse Alt + F11 en su teclado o vaya a la pestaña Desarrollador -> Visual Basic para abrir Editor de Visual Basic .

  • A continuación, en la ventana de código emergente, en la barra de menús, haga clic en Insertar -> Módulo .

  • Entonces, copia el siguiente código y pegar en la ventana de código.
 Sub LoopThroughRowsByRef() LastRow = Range("B" & Rows.Count).End(xlUp).Row FirstRow = 4 i = FirstRow FirstColumn = 2 Do Until i> LastRow LastColumn = Cells(i, Columns.Count).End(xlToLeft).Column Count = FirstColumn Do Until Count> LastColumn MsgBox "Actualmente iterando celda " & Chr(Count + 64) & i Count = Count + 1 Loop i = i + 1 Loop End Sub 

Su código ya está listo para ejecutarse.

  • Ahora, pulse F5 en el teclado o, en la barra de menús, seleccione Run -> Run Sub/UserForm También puede hacer clic en el botón pequeño icono Play en la barra del submenú para ejecutar la macro.

  • O para presenciar y comparar visualmente el conjunto de datos y el resultado, puede guardar el código y volver a la hoja de trabajo de interés.
  • Desde ahí, puede hacer clic en Macros del Desarrollador ficha, seleccione el nombre de la macro, y haga clic en Ejecutar .

Una vez ejecutado el código con éxito, mira el gif de arriba para ver el resultado. Habrá una ventana emergente MsgBox mostrándote el número de referencia de cada celda de cada fila de la tabla de su hoja Excel.

Explicación del código VBA

 LastRow = Range("B" & Rows.Count).End(xlUp).Row 

Obtener el número de la última fila de la tabla buscando en la columna B.

 PrimeraFila = 4 

Pon la fila número 4, desde donde empiezan nuestros datos.

 i = PrimeraFila 

Para hacer un bucle desde la primera fila.

 PrimeraColumna = 2 

Coloca la columna número 2, de donde parten nuestros datos.

 Do Until i> LastRow LastColumn = Cells(i, Columns.Count).End(xlToLeft).Column 

Comienza a recorrer las filas para obtener el último número de columna evaluando la fila actual hasta la última fila.

 Count = FirstColumn Do Until Count> LastColumn 

Incrementa el bucle de la columna desde la primera fila hasta la última.

 MsgBox "Actualmente iterando celda " & Chr(Count + 64) & i Count = Count + 1 Loop i = i + 1 Loop 

Esta pieza de código funciona para procesar, incrementar después de cada iteración y mostrar el resultado del código.

Más información: Cómo Añadir una Nueva Fila Automáticamente en una Tabla Excel

2. Implementar VBA para recorrer cada celda de cada fila por valor

Si desea bucle a través de cada celda en cada fila de una tabla y lanzar el valor que reside en las células como el valor de retorno esta sección le ayudará a averiguar cómo hacerlo con VBA Excel.

Puede hacerlo con la función ListObject y con el DataBodyRange propiedad de VBA Le mostraremos el código de la macro con el objeto y la propiedad.

2.1. Con el ListObject

Los pasos para recorrer cada celda de cada fila de una tabla por valor de celda con el ListObject en VBA Excel.

Pasos:

  • De la misma manera que antes, abra Editor de Visual Basic del Desarrollador y Inserte a Módulo en la ventana de código.
  • Luego, en la ventana de código, copia el siguiente código y pegar eso.
 Sub LoopThroughRowsByList() Dim iListRow As ListRow Dim iCol As Range For Each iListRow In ActiveSheet.ListObjects("TblStudents").ListRows For Each iCol In iListRow.Range MsgBox iCol.Value Next iCol Next iListRow End Sub 

Su código ya está listo para ejecutarse.

  • Después de eso, Ejecutar la macro como te mostramos en la sección anterior. El resultado se muestra en el gif de abajo.

Habrá un pop-up MsgBox mostrándote el valor que lleva cada celda de cada fila de la tabla de su hoja Excel.

Explicación del código VBA

 Dim iListRow As ListRow Dim iCol As Range 

Define las variables.

 For Each iListRow In ActiveSheet.ListObjects("TblStudents").ListRows For Each iCol In iListRow.Range MsgBox iCol.Value Next iCol Next iListRow 

Este fragmento de código primero comienza a recorrer las filas de la tabla (" TblEstudiantes " es el nombre de nuestra tabla). Después introduce las columnas de cada fila. Después pasa el valor de la celda en MsgBox. Después pasa a la siguiente columna. Después de terminar de iterar por todas las columnas de una fila, entonces pasa a la siguiente fila y continúa el proceso de iteración hasta la última fila.

2.2. Con la propiedad DataBodyRange

Para ser más específico con los datos extraídos de la tabla, puede utilizar la función DataBodyRange propiedad de ListObject . DataBodyRange le arrojará el resultado que contiene el rango de la lista entre la fila de cabecera y la fila de inserción.

Los pasos para bucle a través de cada celda en cada fila de una tabla por valor de celda con el DataBodyRange en VBA Excel.

Pasos:

  • Como ya se ha indicado, abra Editor de Visual Basic del Desarrollador y Inserte a Módulo en la ventana de código.
  • Entonces, copia el siguiente código y pegar en la ventana de código.
 Sub LoopThroughRowsByRange() Dim iRange As Range For Each iRange In ActiveSheet.ListObjects("TblStdnt").DataBodyRange MsgBox iRange.Value Next iRange End Sub 

Su código ya está listo para ejecutarse.

  • Más tarde, Ejecutar la macro y mira el siguiente gif para ver la salida.

Habrá un pop-up MsgBox mostrándote el valor que lleva cada celda de cada fila de la tabla de su hoja Excel.

Explicación del código VBA

 Dim iRange As Range 

Define la variable.

 For Each iRange In ActiveSheet.ListObjects("TblStdnt").DataBodyRange MsgBox iRange.Value Next iRange 

Este fragmento de código primero comienza a recorrer las filas de la tabla (" TblStdnt " es el nombre de nuestra tabla) y devuelve un rango de valores excluyendo la fila de cabecera de la tabla. A continuación pasa el valor del rango en MsgBox. Después pasa a la siguiente fila para extraer el rango y continúa el proceso de iteración hasta la última fila.

3. Aplicar Macro VBA para Iterar Filas Concatenando Columnas en Excel

En esta sección se muestra cómo recorrer las filas de una tabla concatenando las columnas con la primera columna de su conjunto de datos en Excel.

Por ejemplo, para nuestro conjunto de datos, primero iteraremos a través de John en la celda B5 y 101 en la celda C5 concatenándolos y luego iterar a través de John en la celda B5 y 89 en la celda D5 concatenándolos a partir de fila 5 .

Le mostraremos cómo hacerlo con VBA en Excel.

Pasos:

  • Al principio, abra Editor de Visual Basic del Desarrollador y Inserte a Módulo en la ventana de código.
  • En segundo lugar, en la ventana de código, copia el siguiente código y pegar eso.
 Sub LoopThroughRowsByConcatenatingCol() Dim iRange As Range Dim iValue As String With ActiveSheet.ListObjects("TblConcatenate") For Each iRange In .DataBodyRange If iRange.Column = .DataBodyRange.Column Then iValue = iRange.Value Else MsgBox "Evaluating " & iValue & ": " & iRange.Value End If Next iRange End With End Sub 

Su código ya está listo para ejecutarse.

  • Tercero, Ejecutar Mira el siguiente gif para ver el resultado.

Habrá un pop-up MsgBox mostrándote el valor concatenado de las celdas de la primera y la segunda columna ( John en la celda B5 de Colum B y 101 en la celda C5 de la columna C ) y luego el valor concatenado de las celdas de la primera y la tercera columna ( John en la celda B5 de Colum B y 89 en la celda D5 de la columna D ) de fila número 5 Y esta operación de concatenación continuará hasta llegar a la última fila de la tabla.

Explicación del código VBA

 Dim iRange As Range Dim iValue As String 

Define la variable.

 Con ActiveSheet.ListObjects("TblConcatenate") 

A continuación, el código selecciona la tabla de la hoja activa (" TblConcatenate " en el nombre de nuestra tabla).

 For Each iRange In .DataBodyRange If iRange.Column = .DataBodyRange.Column Then iValue = iRange.Value 

A continuación, comienza a iterar cada fila excluyendo la cabecera de la columna. Si la iteración encuentra una coincidencia en el rango entre la cabecera de la columna y las filas, entonces almacena el valor en el campo iValor variable.

 Else MsgBox "Evaluating " & iValue & ": " & iRange.Value End If Next iRange End With 

Si la condición anterior no se cumple, entonces el código arroja el valor en el MsgBox y termina la condición. Después de eso, pasa a hacer un bucle en otro rango y continúa iterando hasta la fila final. Una vez que llega a la fila final, la macro termina la ejecución del código.

4. Macro Embed para Iterar a través de Filas Concatenando Todas las Columnas de una Tabla en Excel

En esta sección aprenderemos a concatenar todas las columnas que contiene cada fila en el conjunto de datos con VBA en Excel.

Los pasos para ejecutarlo se muestran a continuación.

Pasos:

  • En primer lugar, abra Editor de Visual Basic del Desarrollador y Inserte a Módulo en la ventana de código.
  • Entonces, copia el siguiente código y pegar en la ventana de código.
 Sub LoopThroughRowsByConcatenatingAllCol() Dim iObj As Excel.ListObject Dim iSheet As Excel.Worksheet Dim iRow As Excel.ListRow Dim iCol As Excel.ListColumn Dim iResult As String Set iSheet = ThisWorkbook.Worksheets("ConcatenatingAllCol") Set iObj = iSheet.ListObjects("TblConcatenateAll") For Each iRow In iObj.ListRows For Each iCol In iObj.ListColumns iResult = iResult & " " &Intersect(iRow.Range, iObj.ListColumns(iCol.Name).Range).Value Next iCol MsgBox iResult iResult = "" Next iRow End Sub 

Su código ya está listo para ejecutarse.

  • Siguiente, Ejecutar el código de la macro.

Como se puede ver en el gif de arriba es que hay una ventana emergente MsgBox mostrándote el valor concatenado de todas las columnas que residen en cada fila de la tabla de su hoja de cálculo Excel.

Explicación del código VBA

 Dim iObj As Excel.ListObject Dim iSheet As Excel.Worksheet Dim iRow As Excel.ListRow Dim iCol As Excel.ListColumn Dim iResult As String 

Define las variables.

 Set iSheet = EsteLibroDeTrabajo.HojasDeTrabajo("ConcatenandoTodoCol") 

Establezca el nombre de la hoja con la que trabajaremos (" ConcatenarTodasCol " es el nombre de la hoja en el libro de trabajo).

 Set iObj = iSheet.ListObjects("TblConcatenateAll") 

Defina el nombre de la tabla con la que vamos a trabajar (" TblConcatenateAll " es el nombre de la tabla en nuestro conjunto de datos).

 For Each iRow In iObj.ListRows 

Inicia la iteración a través de cada fila de la tabla.

 Para cada iCol en iObj.ListaColumnas 

Inicia la iteración a través de cada columna de cada fila de la tabla.

 iResult = iResult & " " & Intersect(iRow.Range, iObj.ListColumns(iCol.Name).Range).Value Next iCol MsgBox iResult iResult = "" Next iRow 

Almacena el resultado intersecando los valores que lleva cada columna de cada fila. Después de escanear todas las columnas que residen en cada fila, pasa el resultado en el MsgBox. A continuación, inicia de nuevo el bucle en la siguiente fila y continúa el bucle hasta llegar a la última fila de la tabla.

Más información: Cómo ordenar varias columnas de una tabla con Excel VBA (2 métodos)

5. Detener la Iteración Si se Encuentra un Valor al Recorrer las Filas de una Tabla con una Macro VBA

Supongamos que desea bucle a través de las filas de la tabla tiene y detener el bucle cuando se encuentra un valor específico Puede hacerlo con un simple código de macro.

Aprendamos a hacerlo VBA en Excel.

Pasos:

  • Al principio, abra Editor de Visual Basic del Desarrollador y Inserte a Módulo en la ventana de código.
  • Luego, en la ventana de código, copia el siguiente código y pegar eso.
 Sub LoopThroughRowsForValue() Dim iData As Range For Each iData In Range("1:15") If iData.Value = "Edge" Then MsgBox "Edge is found at " & iData.Address End If Next iData End Sub 

Su código ya está listo para ejecutarse.

  • Más tarde, Ejecutar la macro.
  • Se iniciar el bucle y detenerlo cuando encuentre el valor específico (" Borde ") en el rango y lanza el resultan en la MsgBox .

Como se puede ver en la imagen de arriba, hay un MsgBox emergente que muestra el dirección de celda, $B$10 donde encontramos el valor especificado, " Borde " .

Explicación del código VBA

 Dim iData As Range 

Define la variable.

 For Each iData In Range("1:15") If iData.Value = "Edge" Then MsgBox "El borde se encuentra en " & iData.Address End If Next iData 

Este trozo de código está aquí para recorrer las filas de 1 a 15. Si encuentra la palabra específica " Borde "Continúa haciendo esto hasta que termina de escanear todos los datos de las filas 1 a 15 en busca de la palabra.

Read More: Cómo Insertar o Eliminar Filas y Columnas de una Tabla de Excel

6. VBA para recorrer cada fila y colorear un valor específico en Excel

¿Qué pasa si no quieres lanzar la dirección de la celda del valor especificado en el MsgBox? Podrías querer colorear la celda que contiene el valor que estás buscando.

Aprendamos a hacerlo con VBA macro.

Pasos:

  • De la misma manera que antes, abra Editor de Visual Basic del Desarrollador y Inserte a Módulo en la ventana de código.
  • Entonces, copia el siguiente código y pegar en la ventana de código.
 Sub LoopThroughRowsAndColor() Dim iData As Range For Each iData In Range("1:15") If iData.Value = "Edge" Then iData.Interior.ColorIndex = 8 End If Next iData End Sub 

Su código ya está listo para ejecutarse.

  • Después de eso, Ejecutar la macro.
  • Se iniciar el bucle y detenerlo cuando encuentre el valor específico (" Borde ") en el rango y colorear la celda con el ÍndiceColor que proporcionó en el código.

Como puede ver en la imagen superior, C ell B10 donde encontramos el valor especificado, " Borde " es de color después de la ejecución del código.

Explicación del código VBA

 Dim iData As Range 

Define la variable.

 For Each iData In Range("1:15") If iData.Value = "Edge" Then iData.Interior.ColorIndex = 8 End If Next iData 

Este trozo de código está aquí para recorrer las filas de 1 a 15. Si encuentra la palabra específica " Borde "Continúa haciendo esto hasta que termina de escanear todos los datos de las filas 1 a 15 en busca de la palabra.

Más información: Cómo utilizar VLOOKUP matriz de tabla basada en el valor de la celda en Excel

Lecturas similares

  • ¿Existe la función TABLE en Excel?
  • Cómo convertir una tabla en una lista en Excel (3 formas rápidas)
  • Convertir Rango a Tabla en Excel (5 Métodos Fáciles)
  • Uso Eficaz de Fórmulas en una Tabla de Excel (Con 4 Ejemplos)
  • Nombre de tabla Excel: Todo lo que necesita saber

7. Implementar VBA para Recorrer Cada Fila y Colorear Cada Fila Impar en Excel

En la sección anterior, hemos aprendido a colorear una celda que lleva un valor específico. En esta sección, aprenderemos a recorrer cada fila de una tabla y colorear todas las filas impares con VBA en Excel.

A continuación se describen los pasos para ejecutar el proceso.

Pasos:

  • Como ya se ha indicado, abra Editor de Visual Basic del Desarrollador y Inserte a Módulo en la ventana de código.
  • Entonces, copia el siguiente código y pegar en la ventana de código.
 Sub LoopThroughRowsAndColorOddRows() Dim iRow As Long With Range("B4").CurrentRegion For iRow = 2 To .Rows.Count If iRow / 2 = Int(iRow / 2) Then .Rows(iRow).Interior.ColorIndex = 8 End If Next End With End Sub 

Su código ya está listo para ejecutarse.

  • Ahora, Ejecutar la macro y mira la siguiente imagen para ver la salida.

Todos los las filas impares se colorean después de recorrer todas las filas de la tabla de la hoja de cálculo.

Explicación del código VBA

 Dim iRow As Long 

Define la variable.

 Con Range("B4").CurrentRegion 

Define el rango con el que vamos a trabajar.

 For iRow = 2 To .Rows.Count If iRow / 2 = Int(iRow / 2) Then .Rows(iRow).Interior.ColorIndex = 8 End If Next End With 

Esta parte del código se refiere a la iteración a través de todas las filas, a partir de la siguiente fila de la fila actual, B4 Si el mod de dividir los números de fila por 2 es igual al número de fila devuelto almacenado en un tipo entero, entonces este código colorea todas las filas que son extraídas por el cálculo con el Índice de Color proporcionado en el código. Continúa moviéndose a través de todas las filas hasta que alcanza el final del rango.

8. Implementar VBA para Recorrer Filas y Colorear Cada Fila Par en Excel

En la sección anterior, hemos aprendido a colorear cada fila impar de una tabla. En esta sección, aprenderemos a recorrer cada fila de una tabla y colorear cada fila par con macro VBA en Excel.

A continuación se exponen los pasos para ejecutar el proceso.

Pasos:

  • En primer lugar, abra Editor de Visual Basic del Desarrollador y Inserte a Módulo en la ventana de código.
  • Entonces, copia el siguiente código y pegar en la ventana de código.
 Sub LoopThroughRowsAndColorEvenRows() Dim iRow As Long With Range("B4").CurrentRegion For iRow = 3 To .Rows.Count Step 2 .Rows(iRow).Interior.ColorIndex = 8 Next End With End Sub 

Su código ya está listo para ejecutarse.

  • Siguiente, Ejecutar la macro y mira la siguiente imagen para ver el resultado.

Todos los las filas pares se colorean después de recorrer todas las filas de la tabla de la hoja de cálculo.

Explicación del código VBA

 Dim iRow As Long 

Define la variable.

 Con Range("B4").CurrentRegion 

Define el rango con el que vamos a trabajar.

 For iRow = 3 To .Rows.Count Step 2 .Rows(iRow).Interior.ColorIndex = 8 Next End With 

Este trozo de código comienza a iterar después de las tres filas desde la fila actual, B4 Primero la colorea, luego incrementa el número de filas en 2 y sigue coloreándola hasta que llega a la última fila del conjunto de datos.

9. Aplicar Macro para Iterar por Filas hasta Celda en Blanco en Excel

Si quieres que tu código funcione como lo hará bucle a través de todas las filas de la tabla y se detiene cuando llega a una celda en blanco Puede ejecutar esa tarea tanto con la función Bucle FOR y el Bucle Do-Until en Excel VBA .

9.1. Con bucle FOR

Pasos para bucle a través de las filas de una tabla hasta una celda en blanco con FOR Loop en VBA Excel.

Pasos:

  • Al principio, abra Editor de Visual Basic del Desarrollador y Inserte a Módulo en la ventana de código.
  • Después de eso, copia el siguiente código y pegar en la ventana de código.
 Sub ForLoopThroughRowsUntilBlank() Dim x As Integer Application.ScreenUpdating = False NumRows = Range("B4", Range("B4").End(xlDown)).Rows.Count Range("B4").Select For x = 1 To NumRows ActiveCell.Offset(1, 0).Select Next Application.ScreenUpdating = True End Sub 

Su código ya está listo para ejecutarse.

  • Entonces, Ejecutar la macro y el resultado se muestra en el gif de abajo.

Después de ejecutar la macro empezó a recorrer todas las filas en la tabla y una vez alcanzado el celda en blanco, celda B8 es detuvo la iteración .

Explicación del código VBA

 Dim x As Integer 

Define la variable.

 Aplicación.ScreenUpdating = False 

Desactiva el evento de actualización de pantalla.

 NumRows = Rango("B4", Rango("B4").End(xlDown)).Rows.Count 

Almacena todas las filas a partir de Celda B4 hasta el último.

 Rango("B4").Seleccionar 

Seleccione Celda B4 .

 For x = 1 To NumRows ActiveCell.Offset(1, 0).Select Next 

Este trozo de código comienza a recorrer todas las filas. Cuando encuentra una celda vacía en una fila, la selecciona y continúa recorriendo las filas hasta llegar al final.

 Aplicación.ScreenUpdating = True 

Activa el evento de actualización de pantalla.

9.2. Con bucle Do-Until

Pasos para bucle a través de las filas hasta una celda en blanco con el bucle Do-Until en VBA se indican a continuación.

Pasos:

  • En primer lugar, abra Editor de Visual Basic del Desarrollador y Inserte a Módulo en la ventana de código.
  • Entonces, copia el siguiente código y pegar en la ventana de código.
 Sub DoUntilLoopThroughRowsUntilBlank() Range("B4").Select Do Until IsEmpty(ActiveCell) ActiveCell.Offset(1, 0).Select Loop End Sub 

Su código ya está listo para ejecutarse.

  • Más tarde, Ejecutar El resultado se muestra en el siguiente gif.

Después de ejecutar la macro, se inició recorriendo todas las filas en la tabla y una vez alcanzado el celda en blanco, celda B8 es detuvo la iteración .

Explicación del código VBA

 Rango("B4").Seleccionar 

Seleccione la celda desde la que vamos a trabajar.

 Do Hasta que IsEmpty(ActiveCell) 

Inicia y continúa el bucle hasta encontrar una celda vacía.

 ActiveCell.Offset(1, 0).Select Loop 

Cuando se encuentre una celda vacía en una fila, selecciónela y detenga la iteración.

10. Macro VBA para Iterar a través de Filas Hasta Múltiples Celdas en Blanco en Excel

En la sección anterior, ha aprendido a detener el bucle cuando se encuentra una celda vacía. Pero, ¿qué ocurre si no desea detener la iteración hasta que se encuentren varias celdas vacías en lugar de una sola?

Los pasos para bucle a través de las filas hasta que múltiples celdas en blanco se encuentran en una tabla con VBA Excel se muestran a continuación.

Pasos:

  • En primer lugar, abra Editor de Visual Basic del Desarrollador y Inserte a Módulo en la ventana de código.
  • Entonces, copia el siguiente código y pegar en la ventana de código.
 Sub LoopThroughRowsUntilMultipleBlank() Range("B4").Select Do Until IsEmpty(ActiveCell) And IsEmpty(ActiveCell.Offset(1, 0)) ActiveCell.Offset(2, 0).Select Loop End Sub 

Su código ya está listo para ejecutarse.

  • Ahora, Ejecutar la macro y ver el siguiente gif para la salida.

Después de ejecutar la macro no se detuvo en la primera celda en blanco, Celda B8 Se detuvo cuando encontró dos celdas en blanco consecutivas en la célula B16 .

Explicación del código VBA

 Rango("B4").Seleccionar 

Seleccione la celda desde la que vamos a trabajar.

 Do Until IsEmpty(ActiveCell) And IsEmpty(ActiveCell.Offset(1, 0)) 

Inicia y continúa el bucle hasta encontrar dos celdas vacías consecutivas.

 ActiveCell.Offset(2, 0).Select Loop 

Cuando se encuentran dos celdas vacías consecutivas, entonces se selecciona y se detiene la iteración.

11. Incrustar VBA para Recorrer Filas Concatenando Todas las Columnas Hasta que estén en Blanco en Excel

Esta sección le mostrará cómo recorrer todas las filas de una tabla y concatenar todas las columnas hasta que aparezca una celda en blanco se encuentra con VBA Excel.

Aprendamos a hacerlo con VBA en Excel.

Pasos:

  • Al principio, abra Editor de Visual Basic del Desarrollador y Inserte a Módulo en la ventana de código.
  • Entonces, copia el siguiente código y pegar en la ventana de código.
 Sub ConcatenatingAllColUntilBlank() Dim iSheet As Worksheet Dim iValue As Variant Dim iResult As String Set iSheet = Sheets("ConcatenatingAllColUntilBlank") iValue = Range("B4").CurrentRegion For i = 2 To UBound(iValue, 1) iResult = "" For J = 1 To UBound(iValue, 2) iResult = IIf(iResult = "", iValue(i, J), iResult & " " & iValue(i, J)) Next J MsgBox iResult Next i End Sub 

Su código ya está listo para ejecutarse.

  • Más tarde, Ejecutar la macro y ver el siguiente gif para el resultado.

Como se puede ver en el gif de arriba es que hay una ventana emergente MsgBox mostrándote el valor concatenado de todas las columnas que residen en cada fila de la tabla de su hoja de cálculo Excel. Pero se detuvo al llegar a la celda en blanco .

Explicación del código VBA

 Dim iSheet As Worksheet Dim iValue As Variant Dim iResult As String 

Define las variables.

 Set iSheet = Sheets("ConcatenatingAllColUntilBlank") 

Establezca el nombre de la hoja con la que trabajaremos (" ConcatenarTodasColHastaBlanco " es el nombre de la hoja en el libro de trabajo).

 iValor = Rango("B4").RegiónActual 

Define el rango con el que vamos a trabajar.

 For i = 2 To UBound(iValue, 1) iResult = "" For J = 1 To UBound(iValue, 2) iResult = IIf(iResult = "", iValue(i, J), iResult & " " & iValue(i, J)) Next J MsgBox iResult Next i 

Este fragmento de código inicia el bucle con la matriz. Continúa el bucle hasta que devuelve el subíndice mayor de la matriz y el límite inferior de la primera dimensión. A continuación, entra en la iteración de extracción del límite inferior de la segunda dimensión. Después, pasa todos los valores extraídos en la variable iResultado concatenándolas y lanzando el resultado en el MsgBox. Continúa haciendo esto hasta que encuentra una celda vacía.

Conclusión

Para concluir, este artículo le ha mostrado 11 métodos eficaces para recorrer las filas de una tabla en Excel con el botón Macro VBA Espero que este artículo le haya sido muy útil. No dude en plantear cualquier pregunta sobre el tema.

Hugh West es un capacitador y analista de Excel altamente experimentado con más de 10 años de experiencia en la industria. Tiene una Licenciatura en Contabilidad y Finanzas y una Maestría en Administración de Empresas. Hugh tiene una pasión por la enseñanza y ha desarrollado un enfoque de enseñanza único que es fácil de seguir y comprender. Su conocimiento experto de Excel ha ayudado a miles de estudiantes y profesionales en todo el mundo a mejorar sus habilidades y sobresalir en sus carreras. A través de su blog, Hugh comparte su conocimiento con el mundo, ofreciendo tutoriales gratuitos de Excel y capacitación en línea para ayudar a las personas y empresas a alcanzar su máximo potencial.