Переворачивание xls-таблицы снизу-вверх

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

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

Ответить
Аватара пользователя
Naeel Maqsudov
Сообщения: 2551
Зарегистрирован: 20 фев 2004, 19:17
Откуда: Moscow, Russia
Контактная информация:

24 фев 2004, 22:58

Если задача разовая, то можно обойтись без VBA

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

Наверняка можно записать макрос макрорекордером
Аватара пользователя
Naeel Maqsudov
Сообщения: 2551
Зарегистрирован: 20 фев 2004, 19:17
Откуда: Moscow, Russia
Контактная информация:

24 фев 2004, 23:01

Ой, извиняюсь, неправильно прочитал вопрос :(
Завтра напишу макрос....
chur
Сообщения: 195
Зарегистрирован: 17 фев 2004, 10:44
Откуда: Riga, Latvia

25 фев 2004, 11:52

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

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
Аватара пользователя
Naeel Maqsudov
Сообщения: 2551
Зарегистрирован: 20 фев 2004, 19:17
Откуда: Moscow, Russia
Контактная информация:

25 фев 2004, 21:29

Предлагаю более бысто работающее решение (гораздо).
Переворачивает строки в выделенном диапазоне

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

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 и еще чуть-чуть оптимизировать
Ответить