Questão Copiando apenas determinadas células de uma linha para outra planilha


Eu tenho uma pasta de trabalho que tem um grande número de folhas projetadas para ajudar minha equipe a gerenciar sua carga de trabalho com mais eficiência.

Quando alguém solicita que um trabalho seja feito, uma linha é adicionada a uma planilha chamada 'autorização pendente'

A equipe tem uma caixa suspensa em cada linha / registro na coluna 'N' que é adicionada e pode aceitar ou recusar o trabalho.

Se a equipe aceitar o trabalho, ele será movido para outra planilha chamada trabalho pendente e excluirá o registro da folha de autorização pendente. O código que faz isso está abaixo:

Private Sub Worksheet_Change(ByVal Target As Range)

If Not Intersect(Target, Range("N:N")) Is Nothing Then
If Target.Cells.Count > 1 Or IsEmpty(Target) Then Exit Sub
Dim Lastrow As Long
Lastrow = Sheets("Status Check").Cells(Rows.Count, "N").End(xlUp).Row + 1

If Target.Value = "Accepted" Then
Rows(Target.Row).Copy Destination:=Sheets("Pending Work").Rows(Lastrow)
Rows(Target.Row).Delete
End If
End If
End Sub

Embora isso funcione muito bem, na verdade, quero apenas que determinadas células dessa linha sejam copiadas para a outra planilha em vez da linha inteira. Existe alguma maneira fácil de selecionar apenas certas células de cada linha a ser copiada?


0


origem


Usar Range("X" & Target.Row) e copie para Range("Y" & Lastrow) (Onde X e Y e as colunas de origem e destino, respectivamente) - cybernetic.nomad
Spot on sim, que funciona, simples depois de ver como você chegou a essa resposta, posso dar-lhe crédito pela resposta? - Nokturnyl
Você definiu algum critério para acessar células específicas da linha copiada? - Rajesh S
Você pode tentar isso também ... If cell.Value = "Accept" Then Range(Cells(cell.Row, "A"), Cells(cell.Row, "D")).Copy - Rajesh S
Outro método mais simples para copiar condicionalmente / incondicionalmente deve, Target.Range("A13").Copy Destination:=Sheets("TEST").Range("A5" & nxtRw) Target.Range("I13:J13").Copy Destination:=Sheets("TEST").Range("E5" & nxtRw - Rajesh S


Respostas:


Em vez de copiar a linha inteira, você pode copiar de Range("X" & Target.Row) e para Range("Y" & Lastrow) 

(onde X e Y e as colunas de origem e destino, respectivamente)


0