Tentando mover um intervalo em uma planilha do Excel para outra planilha com base em um valor em uma coluna

-1

Eu tenho esse código que funciona muito bem, eu gostaria de fazer algumas alterações nele e não sei exatamente como fazer isso.

Sub movetosheet2()

    Dim xRg As Range
    Dim xCell As Range
    Dim I As Long
    Dim J As Long
    Dim K As Long
    I = Worksheets("Sheet1").UsedRange.Rows.Count
    J = Worksheets("Sheet2").UsedRange.Rows.Count
    If J = 1 Then
       If Application.WorksheetFunction.CountA(Worksheets("Sheet2").UsedRange) = 0 Then J = 0
    End If
    Set xRg = Worksheets("Sheet1").Range("C1:C" & I)
    On Error Resume Next
    Application.ScreenUpdating = False
    For K = 1 To xRg.Count
        If CStr(xRg(K).Value) = "Done" Then
            xRg(K).EntireRow.Copy Destination:=Worksheets("Sheet2").Range("A" & J + 1)
            xRg(K).EntireRow.Delete
            If CStr(xRg(K).Value) = "Done" Then
                K = K - 1
            End If
            J = J + 1
        End If
    Next
    Application.ScreenUpdating = True
End Sub

Gostaria de copiar apenas um intervalo em vez de uma linha inteira. Portanto, se esse código copiar a linha 8 da folha 1 para a folha 2, eu gostaria que ele copiasse C8:J8 . Além disso, em vez de excluir a linha 8 na planilha 1, eu preferiria que pudesse obtê-la para Limpar o conteúdo de C8:J8 na planilha 1.

    
por Rene Bourgoin 11.02.2018 / 04:59

1 resposta

2

If this code copies row 8 from sheet 1 to sheet 2, I would like it to copy C8:J8 instead.

Dim rng As Range, r As Long
r = 8 ' Your Row #
Set Rng = Range("C" & r & ":J" & r)

Also instead of deleting row 8 in sheet 1, I would prefer if I could get it to Clear the content of C8:J8 in sheet 1.

Pegue o mesmo objeto rng acima:

rng.ClearContents
    
por 11.02.2018 / 06:05