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

Добавлено: 24 фев 2004, 22:58
Naeel Maqsudov
Если задача разовая, то можно обойтись без VBA

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

Наверняка можно записать макрос макрорекордером

Добавлено: 24 фев 2004, 23:01
Naeel Maqsudov
Ой, извиняюсь, неправильно прочитал вопрос :(
Завтра напишу макрос....

Добавлено: 25 фев 2004, 11:52
chur

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

m = 20 ' количество строк
n = 5  ' количество столбцов
temp = ""
For i = 1 To Int(m / 2)
  For k = 1 To n
    temp = Cells(i, k)
    Cells(i, k) = Cells(m - i + 1, k)
    Cells(m - i + 1, k) = temp
  Next
Next

Добавлено: 25 фев 2004, 21:29
Naeel Maqsudov
Предлагаю более бысто работающее решение (гораздо).
Переворачивает строки в выделенном диапазоне

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

Sub sub1()
Dim v()
  For i = 1 To Selection.Rows.Count \ 2
    v = Selection.Rows(i).Value
    Selection.Rows(i).Value = Selection.Rows(Selection.Rows.Count + 1 - i).Value
    Selection.Rows(Selection.Rows.Count + 1 - i).Value = v
  Next
End Sub
Используя With можно избавиться от обращений к Selection.Rows и еще чуть-чуть оптимизировать