2013-08-22 6 views
0

Я никогда не делал и макроса Excel, но мне нужно сделать следующее: Из одного листа мне нужно взять 2 столбца и скопировать их на другой лист (с большим количеством строки). Но дело в том, что мне нужно взять столбцы A и B из исходного листа и скопировать их в столбцы C и D на целевой лист, но только в строках с определенными значениями в ячейках из столбца A. (что-то вроде «if value». столбец (A) = «значение» скопировать столбцы A и B из источника в столбец C и D в пункт назначения ». Следующая часть: количество копируемых строк меньше числа строк с определенным значением в столбце A. Итак, Я хочу, чтобы остальные строки (те, которые не были перезаписаны) для удаления Home я сделал себе ясно, спасибоExcel - VBA - Как скопировать с одного листа на другой

+0

Как вы будете знать, какие строки, чтобы перезаписать в пункте назначения рабочий лист? –

+0

Я перезапишу строки, которые имеют определенный v alue в столбце A. Но есть больше строк с этим значением, чем строки, которые я выбираю из Sheet2, поэтому мне нужно удалить остальные из них. –

ответ

0

Попробуйте это:..!

Sub dural() 
    Dim rDelete As Range, N As Long 
    Sheets("Sheet1").Range("A:B").Copy Sheets("Sheet2").Range("C1") 
    Sheets("Sheet2").Activate 
    Set rDelete = Nothing 
    For N = 1 To Cells(Rows.Count, "C").End(xlUp).Row 
     If Cells(N, "C").Value <> "value" Then 
      If rDelete Is Nothing Then 
       Set rDelete = Cells(N, "C") 
      Else 
       Set rDelete = Union(rDelete, Cells(N, "C")) 
      End If 
     End If 
    Next 

    If rDelete Is Nothing Then Exit Sub 
    rDelete.EntireRow.Delete 
End Sub 
Смежные вопросы