es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

Excel-VBA: Agregar múltiples filas a una tabla con datos de diferente hoja Aquí se presenta un código en VBA para agregar múltiples filas a una tabla en Excel utilizando datos de una hoja diferente. Dim origen As Worksheet Dim destino As Worksheet Dim tablaDestino As ListObject Dim filaOrigen As Range Dim nuevaFila As ListRow ‘ Especificar la hoja de origen y la hoja de destino Set origen = ThisWorkbook.Worksheets(“HojaOrigen”) Set destino = ThisWorkbook.Worksheets(“HojaDestino”) ‘ Especificar la tabla de destino Set tablaDestino = destino.ListObjects(“TablaDestino”) ‘ Recorrer las filas de origen y agregar nuevas filas a la tabla de destino For Each filaOrigen In origen.Range(“A2:A” & origen.Cells(Rows.Count, “A”).End(xlUp).Row) Set nuevaFila = tablaDestino.ListRows.Add nuevaFila.Range(1) = filaOrigen.Value Next filaOrigen Ten en cuenta que debes personalizar el código según el nombre de tus hojas de origen y destino, y el nombre de tu tabla de destino. El código recorre las filas de la columna A en la hoja de origen y agrega nuevas filas a la tabla de destino con los valores correspondientes. Espero que esto te sea útil. ¡Buena suerte!

Estoy tratando de agregar filas a una tabla en una hoja de cálculo utilizando datos de otra hoja. El código siguiente está funcionando hasta cierto punto.

Puedo agregar una fila de datos a la vez y también determinar dónde se agrega en la tabla. Sin embargo, me gustaría poder agregar múltiples filas de datos y seguir siendo capaz de determinar dónde se agregarán en la tabla.

He intentado diferentes variaciones de este proceso, pero todos parecen tener un problema. O bien puedo insertar múltiples filas pero no puedo determinar dónde se colocan en la tabla, o no he podido agregar múltiples filas al mismo tiempo.

Sub AddData()

Dim ws As Worksheet
Dim tbl As ListObject
Dim NewRow As ListRow

    Set ws = ActiveWorkbook.Worksheets("DATA Member-19")
    Set tbl = ws.ListObjects("MemberInfo19")
    Set NewRow = tbl.ListRows.Add

        With NewRow
          .Range(1) = Sheets("Add Members").Range("B4")
        End With

End Sub

El rango para la nueva fila comenzaría en B4 y cambiaría dependiendo de la cantidad de datos que se necesiten agregar. Podría ser solo una fila, pero también podrían ser varias filas de datos que necesiten ser transferidos.

Tags:  , , ,

Answer

  1. Avatar for davy.ai

    Para agregar múltiples filas de datos y aún poder determinar dónde se agregarán en la tabla, puede modificar el código de la siguiente manera:

    Sub AgregarDatos()
    
        Dim ws As Worksheet
        Dim tbl As ListObject
        Dim NewRows As ListRows
        Dim DataRange As Range
    
        Set ws = ActiveWorkbook.Worksheets("DATA Member-19")
        Set tbl = ws.ListObjects("MemberInfo19")
        Set DataRange = Sheets("Agregar Miembros").Range("B4").CurrentRegion ' Supone que los datos son contiguos
    
        Set NewRows = tbl.ListRows.Add(RowIndex:=tbl.Range.Rows.Count + 1, _
                                       AlwaysInsert:=True, _
                                       NumRows:=DataRange.Rows.Count)
    
        With NewRows.Range
            .Value = DataRange.Value
        End With
    
    End Sub
    

    En este código, primero definimos una variable DataRange para almacenar el rango de datos que queremos agregar, comenzando en la celda B4 y utilizando la propiedad CurrentRegion para encontrar el rango contiguo. Luego, usamos el método Add de la colección ListRows para agregar una nueva fila en la parte inferior de la tabla, con el parámetro RowIndex configurado en tbl.Range.Rows.Count + 1 para agregarla después de la última fila de datos, y AlwaysInsert configurado en True para asegurarse de que la tabla se expanda si es necesario. El parámetro NumRows se establece en el número de filas en la variable DataRange para que se agregue el número correcto de filas.

    Finalmente, usamos la propiedad Range del objeto NewRows para establecer los valores de las nuevas filas igual a los de DataRange. Esto agregará todas las filas de datos a la tabla y aún le permitirá determinar dónde se agregan.

Comments are closed.