Как выбрать четные "нечетные" строки

Весь MS Office, программирование на Visual Basic for Applications и MS VB

Модератор: Naeel Maqsudov

Ответить
Nahren
Сообщения: 2
Зарегистрирован: 24 дек 2007, 12:23

На основании одного столбца надо создать 2 других в одном четные строки исходного а в др нечетные строки.
Serge_Bliznykov
Сообщения: 375
Зарегистрирован: 31 авг 2007, 03:06

я бы добавил ещё один столбец, в нёго записал формулу
=ОСТАТ(СТРОКА(B1);2)
потом по нему отсортировал (или тупо отфильтровал)
и ручками скопировал данные - сначала нечётные, потом чётные...
это если работа разовая.
Если нужно делать такое постоянно - то можно либо через ссылки на строки, либо макросом перенести данные...
Avsha
Сообщения: 665
Зарегистрирован: 08 сен 2005, 13:47
Откуда: KZ

Столбец D=1,2,3,4

=ИНДЕКС(A:A;(D1-1)*2+1)
=ИНДЕКС(A:A;(D1)*2)
Nahren
Сообщения: 2
Зарегистрирован: 24 дек 2007, 12:23

:) Благодарю за помошь!
_Den_
Сообщения: 4
Зарегистрирован: 23 май 2013, 12:46

А как это же записать в виде макроса?
т.к. частая операция.

только нужно что бы получилось 2 столбца
1 четные 2 нечетные
SAS888
Сообщения: 156
Зарегистрирован: 16 янв 2008, 08:28

Пусть данные расположены в столбце "A", начиная с ячейки "A1".
Результат разделения четных и нечетных строк расположить в столбцах "A" и "B".
Можно так:

Код: Выделить всё

Sub Main()
    Dim i As Long, j As Long, a()
    Application.ScreenUpdating = False: j = 1
    ReDim a(1 To Fix(Cells(Rows.Count, 1).End(xlUp).Row / 2) + 1, 1 To 2)
    For i = 1 To Cells(Rows.Count, 1).End(xlUp).Row Step 2
        a(j, 1) = Cells(i, 1): a(j, 2) = Cells(i + 1, 1): j = j + 1
    Next
    [A:B].ClearContents
    [A1].Resize(UBound(a, 1), UBound(a, 2)).Value = a
End Sub
Пример во вложении. Откройте файл и запустите макрос "Main".
Ответить