Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Microsoft Office и VBA программирование > Microsoft Office Excel
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 27.02.2012, 01:05   #1
Kvint_Sertoriy
Пользователь
 
Регистрация: 27.02.2012
Сообщений: 13
По умолчанию Копирование диапазона

Добрый день.

Я пытался написать простой макрос, но у меня, к сожалению, не вышло.

Задача следующая:

Имеется диапазон данных [3;8]. Необходимо его вырезать по сегментам слева направо и расположить сегменты один под другим. Каждый сегмент имеет размер [3;2], так что в итоге должен получиться диапазон размером [12;2].

Я попытался написать макрос, используя Cells и переменные, так как для меня важно каждый раз легко менять размерности диапазонов. Но макрос сработал некорректно из-за того, что счётчики работают не параллельно.

Подскажите, пожалуйста, в чём я ошибся и как можно выполнить мою задачу.

Заранее большое спасибо.

Код и файл прилагаю.

Код:
Sub Перестановка()

Application.ScreenUpdating = False

Dim i As Integer
Dim j As Integer

For j = 3 To 7 Step 2
For i = 5 To 11 Step 3

With ActiveSheet.Range(Cells(2, j), Cells(4, j + 1)).Cut
Range(Cells(i, 1), Cells(i + 3, 2)).Select
ActiveSheet.Paste

End With
Next i
Next j

End Sub
Вложения
Тип файла: rar Файл.rar (3.3 Кб, 9 просмотров)
Kvint_Sertoriy вне форума Ответить с цитированием
Старый 27.02.2012, 01:13   #2
EducatedFool
Программист VBA
СуперМодератор
 
Аватар для EducatedFool
 
Регистрация: 13.07.2008
Сообщений: 6,856
По умолчанию

А зачем макрос?
Простейшие формулы не подойдут?
http://excelvba.ru/XL_Files/Sample__...2__3-13-09.zip
EducatedFool вне форума Ответить с цитированием
Старый 27.02.2012, 01:26   #3
Kvint_Sertoriy
Пользователь
 
Регистрация: 27.02.2012
Сообщений: 13
По умолчанию

Спасибо за вариант, но я думаю формулы не хватит. Я выслал упрощенный пример. В реальности размеры будут гораздо больше, по этому хотелось бы макрос, он, всё-таки, универсальнее.

Плюс, хотелось бы узнать в чём я ошибся? Нет ли какого-то способа для параллельной работы счётчиков в структуре For... Next ?
Kvint_Sertoriy вне форума Ответить с цитированием
Старый 27.02.2012, 02:22   #4
Казанский
Старожил
 
Аватар для Казанский
 
Регистрация: 31.12.2010
Сообщений: 2,133
По умолчанию

Достаточно одного цикла
Код:
Sub Перестановка()
Dim i&

For i = 2 To 4
    Cells(2, i * 2 - 1).Resize(3, 2).Cut Cells(i * 3 - 1, 1)
Next
End Sub
exceleved@yandex.ru Яндекс.Деньги: 410011500007619
Казанский вне форума Ответить с цитированием
Старый 27.02.2012, 21:37   #5
Kvint_Sertoriy
Пользователь
 
Регистрация: 27.02.2012
Сообщений: 13
По умолчанию

Большое спасибо, это то, что мне было нужно.
Kvint_Sertoriy вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Поиск и копирование диапазона Wind-up Bird Microsoft Office Excel 3 16.11.2011 23:25
Копирование выделенного диапазона 6306617 Microsoft Office Excel 7 24.03.2011 15:49
Копирование диапазона в другую книгу в цикле Drummer_SV Microsoft Office Excel 2 22.12.2010 11:27
Копирование динамического диапазона vik85 Microsoft Office Excel 3 27.06.2010 14:40
Копирование части диапазона с шагом valerij Microsoft Office Excel 5 08.12.2009 17:53