|
|
Регистрация Восстановить пароль |
Повторная активизация e-mail |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
Опции темы | Поиск в этой теме |
28.04.2011, 10:53 | #1 |
Регистрация: 22.04.2011
Сообщений: 7
|
Копирование данных по определенным критериям на другой лист.
Добрый день!
Помогите написать макрос. Есть перечень номеров. Номера делятся по складским кодам. Необходимо выбрать несколько складских кодов и перенести этот перечень на другой лист. Обычным фильтром очень долго, и не удобно, так как складских кодов много и меняются они очень редко. Поэтому нужен такой макрос при котором не приходилось бы каждые раз их выбирать. Пробывала написать сама. В принципе он работает но только если перечень не очень большой. А когда нужно обработать много данных он просто переносит весь перечень не фильтруя складские кода. Sub Перечень() ' ' Перечень Макрос ' ' Rows("2:2").Select Selection.AutoFilter ActiveSheet.Range("$A$2:$L$717").Au toFilter Field:=6, Criteria1:=Array( _ "910003437", "910004689", "910005249", "910005509", "910005579", "910005269", "910005289", "910005309", "910005329", "910005349", "910005369", "910005389", "910005409", "910005449", "910005469", "910005489", "910005529", "910005549", "910005689", "910005779", "910005839", "910003239", "910003279", "910003599", "910003729", "910003849", "910003879", "910003909", "910003949", "910004089", "910004129", "910004359", "910004469", "910004499", "910004529", "910004579", "910004629", "910004659", "910004719", "910004749", "910004779", "910004809", "910005029", "910005059", "910005609", "910005719", "910005809", "910005869", "910003247", "910003287", "910003697", "910003827", "910004097", "910004157", "910004237", "910004607", "910004637", "910004667", "910004707", "910004737", "910005749", "910005777", "910005837", "910005909", "910005929", "910005429"), Operator:=xlFilterValues Cells.Select Selection.Copy Sheets.Add After:=Sheets(Sheets.Count) Cells.Select ActiveSheet.Paste Application.CutCopyMode = False ActiveWorkbook.Save End Sub |
28.04.2011, 14:39 | #2 |
Пользователь
Регистрация: 13.03.2011
Сообщений: 21
|
Как вариант.
Код:
|
28.04.2011, 14:49 | #3 |
Регистрация: 22.04.2011
Сообщений: 7
|
19vitek
Спасибо за ваш код. Но я что-то не поняла где указывать складские кода? |
28.04.2011, 15:48 | #4 |
Пользователь
Регистрация: 13.03.2011
Сообщений: 21
|
Ваш файл с моим макросом. В автофильтре на Лист1 выбираете кода и жмете на кнопку. Проверяете результат на 2 листе.
|
28.04.2011, 16:00 | #5 |
Регистрация: 22.04.2011
Сообщений: 7
|
Я наверное не совсем правильно обьяснила. Мне нужен макрос в котором мне бы не приходилось выбирать складские кода через фильтр. Так как складских кодов иногда нужно выбрать более 50-ти вручную делать это очень не удобно. Я бы хотела чтобы кода уже были вписаны в макрос или если это возможно включить их в параметры чтобы при необходимости можно было поменять.
|
28.04.2011, 16:11 | #6 |
Старожил
Регистрация: 11.05.2010
Сообщений: 5,166
|
К сожалению, пример не удаётся посмотреть - что-то с форматом файла.
Может быть делать без автофильтра, а перебором массива - 1. взять список номеров в словарь (например с другого листа или файла) 2. взять в массив обрабатываемые номера 3. скрыть все строки 4. перебором массива (1 проход) и сверкой с словарём открыть нужные строки листа. 5. скопировать видимые 6. открыть все строки чуть другой алгоритм - 1. взять список номеров в словарь (например с другого листа или файла) 2. взять в массив нужный исходный диапазон листа 3. создать пустой массив высотой с исходный, нужной ширины 4. перебором массива (1 проход) и сверкой с словарём сразу переложить нужные данные из исходного массива в заранее заготовленный, считая количество отобранных строк 5. выгрузить заполненную верхушку нового массива куда угодно В этих вариантах нет ограничения автофильтра, легко менять список отбираемых номеров, макрос и список могут быть в файле-инструменте, которым можно обработать любой открытый файл. Работать тоже должно быстро.
webmoney: E265281470651 Z422237915069 R418926282008
|
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Перенос данных на другой лист | milavski | Microsoft Office Excel | 12 | 26.07.2012 15:20 |
перенос данных на другой лист | Jonny B | Microsoft Office Excel | 15 | 26.04.2011 09:16 |
копирование в другой лист | nisan | Microsoft Office Excel | 1 | 28.10.2010 19:44 |
Отбор за критерием и копирование данних на другой лист | vova123zx | Помощь студентам | 1 | 20.04.2010 00:26 |
Автоматизированное копирование данных выборки автофильтра на другой лист при помощи кнопки | outstrip | Microsoft Office Excel | 0 | 12.08.2009 11:28 |