Cómo transferir datos específicos de una hoja a otra a través de VBA en Microsoft Excel
En este artículo, usaremos el evento de cambio de la hoja de trabajo para transferir datos de una hoja a otra, dependiendo de una determinada condición.
Los datos brutos consisten en detalles del cliente, que incluyen nombre, dirección, ciudad, región, país y número de teléfono.
En este artículo, queremos transferir datos de aquellos clientes que no son elegibles para una oferta en particular. La última columna contiene «No» como valor, si un cliente no es elegible para una oferta en particular. Queremos copiar a esos clientes «no elegibles» a la hoja «NotEligibleData».
Explicación del código
Si Target.Column = 7 Entonces El código anterior se usa para restringir el evento de cambio de la hoja de trabajo para que se ejecute solo cuando se cambia el valor en la 7ª columna.
Sheets («NotEligibleData»). Range («A2: I600»). ClearContents El código anterior se utiliza para eliminar el valor del rango A2: I600 Sheets («Main»). Cells (i, «G»). EntireRow.Copy Destino: = Hojas («NotEligibleData»). Rango («A» & Rows.Count) .End (xlUp) .Offset (1)
El código anterior se utiliza para copiar a los clientes no elegibles a la hoja «NotEligibleData».
Siga el código a continuación
Private Sub Worksheet_Change(ByVal Target As Range) 'Declaring variables Dim i, Lastrow As Long 'Execute code if value in seventh column is changed If Target.Column = 7 Then 'Getting the row number of last cell Lastrow = Sheets("Main").Range("A" & Rows.Count).End(xlUp).Row 'Deleting any previous data from "NotEligibleData" sheet Sheets("NotEligibleData").Range("A2:I600").ClearContents 'Looping from tenth row to last row For i = 10 To Lastrow 'If value in G column of the row is "Not" then copy the row to destination sheet If Sheets("Main").Cells(i, "G").Value = "Not" Then Sheets("Main").Cells(i, "G").EntireRow.Copy Destination:=Sheets("NotEligibleData").Range("A" & Rows.Count).End(xlUp).Offset(1) End If Next i End If Range("A1").Select End Sub
Si te gustó este blog, compártelo con tus amigos en Facebook y Facebook.
Nos encantaría saber de usted, háganos saber cómo podemos mejorar nuestro trabajo y hacerlo mejor para usted. Escríbanos a [email protected]