2016-08-11 4 views
-1

Я новичок в VBA и, если возможно, вам нужна помощь. У меня есть 50 строк данных с 4 разными названиями автомобилей (FIAT, SEAT, MINI, VOLVO), и я хотел бы их скопировать отдельно. Сначала я хотел бы иметь 15 строк FIAT, затем 10 строк SEAT, затем 15 MINI строк, а затем 10 строк VOLVO). Я уже распакованы 4 уникальных значений и попытался создать петлю для этих 4 значенийVBA: Фильтровать строки и копировать на новый рабочий лист

Я попытался следующий код

for i=1 to 4 car=Sheets("cars").Cells(55,i) With Sheets("cars") 
    With .Range("A2:X52") 
    .AutoFilter Field:=1, Criteria1:="car" 
    .SpecialCells(xlCellTypeVisible).Copy Destination:=Sheets("results").Cells(freerow, 2) 
End With          End With 

Я был бы признателен, если кто-то может дать подсказку, спасибо заранее

+0

В чем проблема с текущим кодом? –

ответ

0

Это похоже на передачу.

Sub moveCars() 
    Dim i As Long, cars As Variant 

    cars = Array("fiat", "seat", "mini", "volvo") 

    With Worksheets("cars") 
     With .Range("A2:X52") 
      For i = LBound(cars) To UBound(cars) 
       .AutoFilter Field:=1, Criteria1:=cars(i) 
       .SpecialCells(xlCellTypeVisible).Copy _ 
        Destination:=Worksheets("results").Cells(.Rows.Count, 2).End(xlUp).Offset(1, 0) 
      Next i 
     End With 
    End With 
End Sub 

Видя, как вы двигаетесь 15, то 10, то 15, то 10 будет не пользовательский порядок сортировки быть более подходящим на 50 клеток (A2: x52)?

+0

Попробуем, спасибо большое –

Смежные вопросы