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

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

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

Восстановить пароль

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

Ответ
 
Опции темы Поиск в этой теме
Старый 09.11.2013, 13:08   #1
Andrej092
 
Регистрация: 10.06.2013
Сообщений: 4
По умолчанию Kопировать ячейки со смещением

здравствуйте,
Помогите пожалуйста скопировать данные с листа 2 на Лист 1 с расстоянием в 40 линий. т.е
С Листа2 А1 на Лист 1 А1,
С Листа 2 А2 на Лист 1 А40
С Листа 2 А3 на Лист 1 А80 и тд

Я в ВБА начинающий, искал в нете но не нашел ничего подходящего....

Спасибо заранее

Извините но файл не пристегивается... но может и так понятен вопрос
Andrej092 вне форума Ответить с цитированием
Старый 09.11.2013, 13:31   #2
maksim_serg
Форумчанин
 
Аватар для maksim_serg
 
Регистрация: 25.03.2010
Сообщений: 417
По умолчанию

Код:
Sub myCopy()
Dim RowCount As Integer ' число копируемых строк
RowCount = 8
For i = 0 To RowCount - 1
    Sheets(1).Cells(i + 1, 1).Value = Sheets(2).Cells(i * 40 + 1, 1).Value
Next
End Sub
Вот только между 1 и 40 строкой всего 39 строк...
maksim_serg вне форума Ответить с цитированием
Старый 09.11.2013, 16:20   #3
Andrej092
 
Регистрация: 10.06.2013
Сообщений: 4
По умолчанию

Большое спасибо, все работает
Только я значения местами поменял ....
И переменную "i" обозначил а то макрос ругался ( надеюсь я правильную переменную ему присвоил )
Код:
 Sub myCopy()
Dim RowCount As Integer, i As Variant
RowCount = 15
For i = 0 To RowCount - 1
    Sheets(1).Cells(i * 39 + 1, 1).Value = Sheets(2).Cells(i + 1, 1).Value
Next
End Sub
Но у меня есть еще пару вопросов к знающим(извините за пытливость ума ):
1. Зачем нужно присваивать переменную "RowCount" если и без нее работает ?
For i = 0 To 100
2. Как скопировать диапазон ячеек с Листа2 (B3:C8) на Лист1 10 раз с таким же успехом, т.е на Листе 2 только один диапазон и он копируется 10 раз с рассоянием ...
Andrej092 вне форума Ответить с цитированием
Старый 09.11.2013, 16:33   #4
maksim_serg
Форумчанин
 
Аватар для maksim_serg
 
Регистрация: 25.03.2010
Сообщений: 417
По умолчанию

можно и не присваивать, просто написал, что б понятней было:
Код:
Sub myCopy()
Dim i As Integer
For i = 0 To 14
    Sheets(1).Cells(i * 39 + 1, 1).Value = Sheets(2).Cells(i + 1, 1).Value
Next
End Sub
Код:
For i = 0 To 9
    Sheets(1).Cells(i * 39 + 1, 1).Resize(6, 2).Value = Sheets(2).Cells(3, 2).Resize(6, 2).Value
Next i

Последний раз редактировалось maksim_serg; 09.11.2013 в 16:56.
maksim_serg вне форума Ответить с цитированием
Старый 09.11.2013, 16:56   #5
Andrej092
 
Регистрация: 10.06.2013
Сообщений: 4
По умолчанию

Все правильно! надо переменные присваивать! Oнa показывает сколько раз я буду копировать!!!
СПАСИБО ОГРОМНОЕ. А вот я сам додумался как диапазон копировать. Если вы можете предложит вариант получше я буду только рад .
Код:
Sub MyCopy2()
Dim RowCount As Integer, i As Variant
Sheets("Ark2").Select
    
    RowCount = 4
    For i = 0 To RowCount - 1
    Range("B1:M39").Copy Destination:=Cells(i * 39 + 1, 2)
    
    Next
End Sub
Andrej092 вне форума Ответить с цитированием
Старый 09.11.2013, 16:58   #6
maksim_serg
Форумчанин
 
Аватар для maksim_serg
 
Регистрация: 25.03.2010
Сообщений: 417
По умолчанию

смотрите выше
maksim_serg вне форума Ответить с цитированием
Старый 09.11.2013, 17:13   #7
Andrej092
 
Регистрация: 10.06.2013
Сообщений: 4
По умолчанию

Благодарствую. Сегодня вечером подниму в ваше здоровье стопарик датцкого травяного напитка.
Удачных выходных вам !!!
Andrej092 вне форума Ответить с цитированием
Старый 09.11.2013, 17:15   #8
maksim_serg
Форумчанин
 
Аватар для maksim_serg
 
Регистрация: 25.03.2010
Сообщений: 417
По умолчанию

Спасибо. А у меня виски в холодильнике лежит
maksim_serg вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
МАКРОС СО СМЕЩЕНИЕМ EXEL 2003 Ирина Розанова Microsoft Office Excel 13 07.09.2012 00:05
сегодняшняя дата со смещением +3 дня xrob PHP 5 08.01.2012 09:28
Перенос значений поля со смещением вниз kulon БД в Delphi 0 23.04.2011 16:41
Несколько графиков в DBCHART со смещением mikoni Компоненты Delphi 0 21.05.2010 13:17
Проблема с дельта смещением un07 Assembler - Ассемблер (FASM, MASM, WASM, NASM, GoASM, Gas, RosAsm, HLA) и не рекомендуем TASM 11 25.03.2009 10:11