powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Microsoft Office [игнор отключен] [закрыт для гостей] / Закопировать несмежные ячейки в цикле со смещением
3 сообщений из 3, страница 1 из 1
Закопировать несмежные ячейки в цикле со смещением
    #36509768
Excelness
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
в excel не сильно шарю, а нужно срочно, помогите, у кого есть возможность и желание

суть этого бреда, который ниже в следующем: на "ИсхЛист" содержаться по строкам данные по районам, нужно в цикле организовать копирование несмежных ячеек,( шаблон одинаковый - XX3, XX6, XX8, где XX - колонки B, C, D ) из каждого столбца и поместить на разные листы (допустим "Лист_колонкиB", "Лист_колонкиС", "Лист_колонкиD"). На всех листах вставляем скопированный диапазон, начиная с одной и той же ячейки - на примере H8.
Со всем, вроде, разобрался - не могу добиться смещения в цикле.



Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
Option Base  0 
Sub Макрос1()
'
'
Dim rajons As Variant
Dim cnt As Variant
Dim i_offset As Integer
i_offset =  0 
rajons = Array("Район1", "Район2", "Район3")

For Each cnt In rajons

    Sheets("ИсхЛист").Activate
    Range("B3").Select
    -- тут я не знаю :)
    'Range("B3").Activate
    'Selection.Offset(0, i_offset).Range("B3,B6, B8").Select
    Range("B3,B6, B8").Select
    Selection.Offset( 0 , i_offset).Range("B3,B6, B8").Select
    Selection.Copy
    Sheets(cnt).Activate
    Range("H8").Select
    ActiveSheet.Paste Link:=True

    i_offset = i_offset +  1 
Next cnt

End Sub

спасибо за внимание!
...
Рейтинг: 0 / 0
Закопировать несмежные ячейки в цикле со смещением
    #36509882
Фотография vlth
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Excelness, то, что Вы хотите сделать, может выглядеть примерно так:
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
Dim oRange As Range, rajons As Variant, i As Byte

rajons = Array("Район1", "Район2", "Район3")

With Worksheets("ИсхЛист")
    Set oRange = Range(.Cells( 2 ,  2 ), .Cells( 9 ,  4 ))
    For Each oCol In oRange.Columns
        With oCol
            Union(.Cells( 2 ), .Cells( 5 ), .Cells( 7 )).Copy _
                Worksheets(rajons(i)).Range("H8")
        End With
        i = i +  1 
    Next
End With

Скорее всего, что решение задачки в оптимизированном варианте будет выглядеть совсем по-другому. Имейте это в виду.
...
Рейтинг: 0 / 0
Закопировать несмежные ячейки в цикле со смещением
    #36509890
Фотография vlth
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Поправка (строка объявления переменных):
Код: plaintext
Dim oRange As Range, oCol As Range, rajons As Variant, i As Byte
...
Рейтинг: 0 / 0
3 сообщений из 3, страница 1 из 1
Форумы / Microsoft Office [игнор отключен] [закрыт для гостей] / Закопировать несмежные ячейки в цикле со смещением
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]