Доброго дня ! Имею большой (длинный) столбец данных. Для дальнейшей работы с данными необходимо каждую ВТОРУЮ ячейку вырезать из этого столбца, и вставить в соседний (справа) столбец (обыкновенный копипаст). Команда xlRight ? Не пойму (мои знания Ехеля слабые) как определить КАЖДУЮ ВТОРУЮ ячейку, и КАК применить к ней перемещение вправо. Возможно, это выглядит так - применяю к выделенному столбцу
[vba]
Код
Sub vvv() Dim r As Range For Each r In Selection If r.Value = "Суперприз" Then 'вместо этой строки - както нужно выбрать каждую ВТОРУЮ ячейку r.Delete Shift:=xlUp 'вместо этой строки - выбранную выше ячейку вырезать из выделенного столбца и вставить в соседний (правый) столбец ElseIf Len(r) = 1 Then r.Value = "'0" & r.Value 'эта строка никакого значения не имеет, может остаться End If Next End Sub
[/vba]
Как потом убрать пустые ячейки в столбцах - я уже знаю.
Доброго дня ! Имею большой (длинный) столбец данных. Для дальнейшей работы с данными необходимо каждую ВТОРУЮ ячейку вырезать из этого столбца, и вставить в соседний (справа) столбец (обыкновенный копипаст). Команда xlRight ? Не пойму (мои знания Ехеля слабые) как определить КАЖДУЮ ВТОРУЮ ячейку, и КАК применить к ней перемещение вправо. Возможно, это выглядит так - применяю к выделенному столбцу
[vba]
Код
Sub vvv() Dim r As Range For Each r In Selection If r.Value = "Суперприз" Then 'вместо этой строки - както нужно выбрать каждую ВТОРУЮ ячейку r.Delete Shift:=xlUp 'вместо этой строки - выбранную выше ячейку вырезать из выделенного столбца и вставить в соседний (правый) столбец ElseIf Len(r) = 1 Then r.Value = "'0" & r.Value 'эта строка никакого значения не имеет, может остаться End If Next End Sub
[/vba]
Как потом убрать пустые ячейки в столбцах - я уже знаю.Valeriy22
Сообщение отредактировал Valeriy22 - Четверг, 25.01.2018, 22:06
В порядке обмена опытом. Я подобные задачки решаю вручную при помощи сортировки. Для этого в соседний с основным столбцом добавляем нумерацию типа "на первый-второй рассчитайсь!", т.е. 1,2,1,2,1,2…и т.д. И далее еще в один столбец (для надежности) - сквозную нумерацию 1,2,3,4,5,6…и т.д. Далее сортируем все три столбца по двум дополнительным столбцам, по возрастанию. Цифры "2" при этом оказываются в второй половине списка. Остается выделить соответствующую цифрам "2" нижнюю половину основного столбца и перетащить ее в начало списка, в соседний столбец правее первой половины, после чего удалить вспомогательные данные (нумерацию).
В порядке обмена опытом. Я подобные задачки решаю вручную при помощи сортировки. Для этого в соседний с основным столбцом добавляем нумерацию типа "на первый-второй рассчитайсь!", т.е. 1,2,1,2,1,2…и т.д. И далее еще в один столбец (для надежности) - сквозную нумерацию 1,2,3,4,5,6…и т.д. Далее сортируем все три столбца по двум дополнительным столбцам, по возрастанию. Цифры "2" при этом оказываются в второй половине списка. Остается выделить соответствующую цифрам "2" нижнюю половину основного столбца и перетащить ее в начало списка, в соседний столбец правее первой половины, после чего удалить вспомогательные данные (нумерацию).Gustav