Страница 1 из 1

Подстановка в ячейки

Добавлено: 10 фев 2005, 00:04
Anatol
Здравствуйте!
Прошу совета:
на листе Excel имеется список (допустим, A1:A10).
Требуется, чтобы все записи (непустые ячейки в этом столбце) были отсортированы по горизонтали (а не в столбец).
то есть:
A1
A2
A3
превратились в

A1 A2 A3

(не подряд в строку, а через одну ячейку).

Я попытался, но получилось совсем плохо :( Вот что есть:

' Здесь начало списка
Range("A1").Select

Range(Selection, Selection.End(xlDown)).Select
dd = Selection.Count
dd22 = dd * 2

For i = 1 To dd22 Step 2
Range("A1").Select

Selection.Copy
Range(Cells(3, i), Cells(3, i)).Select

ActiveSheet.Paste
Application.CutCopyMode = False

Next
Если можно, подскажите хоть от чего плясать...
Заранее спасибо!

Добавлено: 10 фев 2005, 12:07
Игорь Акопян
Исходный список должен быть выделен

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

Sub qwe()
Dim rTO As Range, rCell As Range
  Set rTO = Range("C2") ' сюда вписать адрес ячейки с кот начнётся гориз диапазон
  For Each rCell In Selection
    rTO.Value = rCell.Value 
    Set rTO = rTO.Offset(0, 2)
  Next
End Sub

Добавлено: 10 фев 2005, 14:45
Anatol
Спасибо большое!

Добавлено: 21 фев 2005, 01:40
Naeel Maqsudov
А как на счет обойтись без макросов? А?

Копируем в буфер то, что надо перевернуть, а затем идем в Правка/Специальная вставка.
Включаем флажок "Транспонировать" и все готово.

Если надо пропустить пустые ячейки, то предварительно надо выполнить сортировку (это нажатие одной кнопки). Пустые ячейки "провалятся" в низ диапазона.

Кстати, это все можно записать в макрос, получится более эффективный макрос из, по сути, трех действий.

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

Selection.Sort ...
Selection.Copy ...
<Ячейка_назначения>.PasteSpecial ...

Добавлено: 21 фев 2005, 12:35
Игорь Акопян
Недавно я искал что-то в этом роде, но не нашёл :D . Благо повернуть надо было с десяток строк руками перетащил