Добрый день! Подскажите как прописать в коде копирование столбцов выборочно. Дело в том что таких столбцов около 100 шт. Определенной логики нет к которому моно привязать цикл (имхо)Книга1.xlsx
Добрый день! Подскажите как прописать в коде копирование столбцов выборочно. Дело в том что таких столбцов около 100 шт. Определенной логики нет к которому моно привязать цикл (имхо)Книга1.xlsxTEjgruig1jk
пронумеруйте столбцы на листе1 в первой строке от 1 до 17 (от А до Q) Создайте Лист2 и в первой строке введите номера тех столбцов, которые вы желаете скопировать (А1=9, В1=12, С1=15 и т.д.) При активном Листе1 запустить макрос [vba]
Код
Sub iSelCopy() Range(Cells(1, 1), Cells(28, 17)).AdvancedFilter Action:=xlFilterCopy, _ CopyToRange:=ThisWorkbook.Worksheets("Лист2").Range("A1").Resize(, 4), Unique:=False End Sub
[/vba]
Цитата
Определенной логики нет
пронумеруйте столбцы на листе1 в первой строке от 1 до 17 (от А до Q) Создайте Лист2 и в первой строке введите номера тех столбцов, которые вы желаете скопировать (А1=9, В1=12, С1=15 и т.д.) При активном Листе1 запустить макрос [vba]
Код
Sub iSelCopy() Range(Cells(1, 1), Cells(28, 17)).AdvancedFilter Action:=xlFilterCopy, _ CopyToRange:=ThisWorkbook.Worksheets("Лист2").Range("A1").Resize(, 4), Unique:=False End Sub
Kuzmich, а можно ли это реализовать циклом? просто немогу понять как в цикле прописать список диапазонов I13:I28 ; I13L:L28; O13:O28 ...итп 100 раз
Kuzmich, а можно ли это реализовать циклом? просто немогу понять как в цикле прописать список диапазонов I13:I28 ; I13L:L28; O13:O28 ...итп 100 разTEjgruig1jk
Kuzmich, возможно ли в коде в этом коде прописать список диапазонов (типа Range(" I13:I28 ; I13L:L28; O13:O28 ");
[vba]
Код
Sub Test3() 'Объявляем переменную Dim myRange As Range 'Присваиваем диапазон ячеек Set myRange = Range("C6:E8") 'Присваиваем ячейкам рабочего листа 'значения ячеек переменной диапазона Range("A1:C3") = myRange.Value MsgBox "Пауза" 'Копирование диапазона переменной 'и вставка его на рабочий лист 'с указанием начальной ячейки myRange.Copy Range("E1") MsgBox "Пауза" 'Копируем и вставляем часть 'диапазона из переменной myRange.Range("A2:C2").Copy Range("E11") End Sub
[/vba]
Kuzmich, возможно ли в коде в этом коде прописать список диапазонов (типа Range(" I13:I28 ; I13L:L28; O13:O28 ");
[vba]
Код
Sub Test3() 'Объявляем переменную Dim myRange As Range 'Присваиваем диапазон ячеек Set myRange = Range("C6:E8") 'Присваиваем ячейкам рабочего листа 'значения ячеек переменной диапазона Range("A1:C3") = myRange.Value MsgBox "Пауза" 'Копирование диапазона переменной 'и вставка его на рабочий лист 'с указанием начальной ячейки myRange.Copy Range("E1") MsgBox "Пауза" 'Копируем и вставляем часть 'диапазона из переменной myRange.Range("A2:C2").Copy Range("E11") End Sub
Sub iCopySelColumns() 'запускаем при активном листе Лист1 Dim i As Long Dim n As Integer Dim iLastRow As Long Dim arr Dim iCol As Range arr = Array(9, 12, 15, 17) 'выбранные столбцы n = 1 With Worksheets("Лист2") .Cells.Clear For i = 0 To UBound(arr) Set iCol = Rows(1).Find(arr(i), , xlValues, xlWhole) If Not iCol Is Nothing Then Range(Cells(1, iCol.Column), _ Cells(28, iCol.Column)).Copy .Cells(1, n) n = n + 1 End If Next i .Activate End With End Sub
[/vba]
Цитата
а можно ли это реализовать циклом?
[vba]
Код
Sub iCopySelColumns() 'запускаем при активном листе Лист1 Dim i As Long Dim n As Integer Dim iLastRow As Long Dim arr Dim iCol As Range arr = Array(9, 12, 15, 17) 'выбранные столбцы n = 1 With Worksheets("Лист2") .Cells.Clear For i = 0 To UBound(arr) Set iCol = Rows(1).Find(arr(i), , xlValues, xlWhole) If Not iCol Is Nothing Then Range(Cells(1, iCol.Column), _ Cells(28, iCol.Column)).Copy .Cells(1, n) n = n + 1 End If Next i .Activate End With End Sub
Serge_007, т.е нужно будет присваивать Range1 ( I13:I28) Range2 (I13L:L28) Range3(O13:O28 ) итд тогда получится нужно будет прописать таких 100 строк
Serge_007, т.е нужно будет присваивать Range1 ( I13:I28) Range2 (I13L:L28) Range3(O13:O28 ) итд тогда получится нужно будет прописать таких 100 строкTEjgruig1jk