|
0 / 0 / 0
Регистрация: 23.01.2020
Сообщений: 8
|
||||||
Excel Перенос данных на другие листы23.01.2020, 12:02. Показов 3953. Ответов 20
Метки нет (Все метки)
Добрый день.
К сожалению, знания VBA у меня сильно скудны, а потому написать адекватный макрос не получается. В общем, требуется автоматическая фильтрация по столбцу H на листе "Лист для выгрузки" в соответствии с листом кодов (код = район). Затем в трех столбцах из отфильтрованных строк требуется выбрать информацию из столбцов B, С и D (не более 20 строк) и перенести на лист "Опись" в соответствующие графы в столбцах B и C. (Т.е. "Регистрационный номер" в "Регистрационный номер", "ФИО клиента" в "ФИО клиента" и "Адрес доставки" в "Адрес доставки"). И так для каждого из кодов: отфильтровываем столбец H по коду, если что-то есть, то оно нужные столбцы переносятся на другой лист. Проблема в том, что в случае, если фильтр ничего не находит, то вся информация из столбцов переносится на другой лист и с этим ничего не сделать. Затем фильтры сбрасываются и вся информация по столбцам переносится в "Журнал на сайт" (вот с этим я вроде справился). Заранее спасибо за помощь!
0
|
||||||
| 23.01.2020, 12:02 | |
|
Ответы с готовыми решениями:
20
Перенос данных в отдельные листы по форме и условию
Перенос данных excel -excel на разные листы |
|
4138 / 2242 / 940
Регистрация: 01.12.2010
Сообщений: 4,624
|
||
| 23.01.2020, 15:03 | ||
|
0
|
||
|
0 / 0 / 0
Регистрация: 23.01.2020
Сообщений: 8
|
|
| 23.01.2020, 15:47 [ТС] | |
|
Из того, что я вижу сейчас, фильтровать и копировать он может правильно, по очереди для каждого из кодов. Проблема одна: если фильтр не находит ничего, то нужно, чтобы ничего не копировалось. Или были пустые строки, которые бы копировались. А он копирует данные из неотфильтрованных строк.
0
|
|
|
4138 / 2242 / 940
Регистрация: 01.12.2010
Сообщений: 4,624
|
|
| 23.01.2020, 16:04 | |
|
А я вижу, что сейчас очередь не имеет смысла, т.к. новое копирование приводит к удалению старых данных и в результате - данные только последней фильтрации.
0
|
|
|
0 / 0 / 0
Регистрация: 23.01.2020
Сообщений: 8
|
|
| 23.01.2020, 17:45 [ТС] | |
|
Наверное, я недостаточно полно описал действия в этой части. В файле имеются описи для 18 кодов (=районов), соответственно, при сортировке по одному коду данные отправляются в опись к соответствующему коду району, при сортировке по следующему коду - в следующую опись, соответствующую следующему коду.
Т.е. каждый раз копирование происходит на тот же лист, но в другую часть этого листа.
0
|
|
|
4138 / 2242 / 940
Регистрация: 01.12.2010
Сообщений: 4,624
|
|||||||||||
| 23.01.2020, 18:48 | |||||||||||
Сообщение было отмечено Corovaneer как решение
Решение
Вы правы, это я старый крот не вижу очевидного.
В общем, предлагаю просто не фильтровать, если нет искомого значения. Т.е. сначала определим наличие, например, с помощью стандартной функции рабочего листа СЧЁТЕСЛИ/COUNTIF , если есть, копируем.
С ограничением в 20 строк, но уже без копирования :
1
|
|||||||||||
|
6997 / 2895 / 555
Регистрация: 19.10.2012
Сообщений: 8,803
|
|
| 23.01.2020, 19:33 | |
|
Вообще-то копирование никто и не просил, просили перенос
0
|
|
|
4138 / 2242 / 940
Регистрация: 01.12.2010
Сообщений: 4,624
|
|
| 23.01.2020, 19:45 | |
|
В изначальном коде наличествует Copy и PasteSpecial
0
|
|
|
6997 / 2895 / 555
Регистрация: 19.10.2012
Сообщений: 8,803
|
|
| 23.01.2020, 19:48 | |
|
Это я вижу, но я сталкивался, что на самом деле бывает что пользователю нужно переносить данные, представляете!
0
|
|
|
4138 / 2242 / 940
Регистрация: 01.12.2010
Сообщений: 4,624
|
|
| 23.01.2020, 19:53 | |
|
Нет, не представляю. Но автор вставляет именно значения, об этом говорит константа xlPasteValues
0
|
|
|
6997 / 2895 / 555
Регистрация: 19.10.2012
Сообщений: 8,803
|
|
| 23.01.2020, 19:55 | |
|
Да вижу, вижу. Просто я люблю точность в высказывании желаний
0
|
|
|
4138 / 2242 / 940
Регистрация: 01.12.2010
Сообщений: 4,624
|
|
| 23.01.2020, 20:00 | |
|
А в чем неточность ? Автор пишет, что хочет перенести данные и осуществляет это с помощью копирования и вставки значений. Можно, конечно, придраться к тому, что в жизни, обычно, перенос подразумевает исчезновение об'екта в исходном месте пребывания. Но затем нужна такая мелочность...
0
|
|
|
0 / 0 / 0
Регистрация: 23.01.2020
Сообщений: 8
|
|
| 24.01.2020, 15:36 [ТС] | |
|
Ого, для меня этот код выглядит как магия, но главное, что он работает! Огромное вам спасибо!
0
|
|
|
0 / 0 / 0
Регистрация: 23.01.2020
Сообщений: 8
|
||||||
| 04.02.2020, 17:55 [ТС] | ||||||
|
Еще раз спасибо уважаемому pashulka за код. Теперь возник новый вопрос, связанный с ограничением в 20 строк на странице "Опись".
Как оказалось, в случае, если происходит заполнение всех 20 строк, может остаться никуда не скопированная информация с листа "Лист для выгрузки". Соответственно, при заполнении этой самой строки потребуется добавление Описи клиентов справа от Описи клиентов с скопированной туда информацией, ну а далее потребуется копирование оставшейся информации с листа "Лист для выгрузки" на добавленную Опись клиентов. Если и эта Опись клиентов заполнится, потребуется добавление еще одной и т.д. Я понимаю, что здесь потребуются циклы, так что к коду pashulka я добавляю что-то такое, но всё без толку:
0
|
||||||
|
4138 / 2242 / 940
Регистрация: 01.12.2010
Сообщений: 4,624
|
||||||
| 06.02.2020, 14:15 | ||||||
|
Corovaneer, Если правильно понял Ваши хотелки, то :
1
|
||||||
|
0 / 0 / 0
Регистрация: 23.01.2020
Сообщений: 8
|
|
| 07.02.2020, 11:30 [ТС] | |
|
pashulka, спасибо огромное! У меня есть только один вопрос: как раскидать оба Sub так, чтобы они работали, так сказать, в спайке. В рамках одного модуля два Sub работать не будут, а если раскидать их в разные модули, то ссылка не проходит. Может, я чего-то не понимаю?
0
|
|
|
6997 / 2895 / 555
Регистрация: 19.10.2012
Сообщений: 8,803
|
||
| 07.02.2020, 11:32 | ||
|
Да вон выше сами поблагодарили пример кода где именно так и написано - в рамках одного модуля два Sub
0
|
||
|
4138 / 2242 / 940
Регистрация: 01.12.2010
Сообщений: 4,624
|
|
| 07.02.2020, 11:33 | |
|
0
|
|
|
0 / 0 / 0
Регистрация: 23.01.2020
Сообщений: 8
|
|||
| 07.02.2020, 12:52 [ТС] | |||
|
0
|
|||
|
4138 / 2242 / 940
Регистрация: 01.12.2010
Сообщений: 4,624
|
|
| 07.02.2020, 16:26 | |
|
Примерно так
1
|
|
| 07.02.2020, 16:26 | |
|
Помогаю со студенческими работами здесь
20
Как програмно изменить ссылки на другие листы Скопировать данные из sheet1 на другие листы этой же книги Процедура копирующая отрицательные или положительные числа на другие листы Перенос данных на другие листы Перенос значений на другие листы по заданным условиям (Протоколы соревнований) Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
||||
|
PhpStorm 2025.3: WSL Terminal всегда стартует в ~
and_y87 14.12.2025
PhpStorm 2025. 3: WSL Terminal всегда стартует в ~ (home), игнорируя директорию проекта
Симптом:
После обновления до PhpStorm 2025. 3 встроенный терминал WSL открывается в домашней директории. . .
|
Access
VikBal 11.12.2025
Помогите пожалуйста !! Как объединить 2 одинаковые БД Access с разными данными.
|
Новый ноутбук
volvo 07.12.2025
Всем привет.
По скидке в "черную пятницу" взял себе новый ноутбук Lenovo ThinkBook 16 G7 на Амазоне:
Ryzen 5 7533HS
64 Gb DDR5
1Tb NVMe
16" Full HD Display
Win11 Pro
|
Музыка, написанная Искусственным Интеллектом
volvo 04.12.2025
Всем привет. Некоторое время назад меня заинтересовало, что уже умеет ИИ в плане написания музыки для песен, и, собственно, исполнения этих самых песен. Стихов у нас много, уже вышли 4 книги, еще 3. . .
|
От async/await к виртуальным потокам в Python
IndentationError 23.11.2025
Армин Ронахер поставил под сомнение async/ await. Создатель Flask заявляет: цветные функции - провал, виртуальные потоки - решение. Не threading-динозавры, а новое поколение лёгких потоков. Откат?. . .
|
|
Поиск "дружественных имён" СОМ портов
Argus19 22.11.2025
Поиск "дружественных имён" СОМ портов
На странице:
https:/ / norseev. ru/ 2018/ 01/ 04/ comportlist_windows/
нашёл схожую тему. Там приведён код на С++, который показывает только имена СОМ портов, типа,. . .
|
Сколько Государство потратило денег на меня, обеспечивая инсулином.
Programma_Boinc 20.11.2025
Сколько Государство потратило денег на меня, обеспечивая инсулином.
Вот решила сделать интересный приблизительный подсчет, сколько государство потратило на меня денег на покупку инсулинов.
. . .
|
Ломающие изменения в C#.NStar Alpha
Etyuhibosecyu 20.11.2025
Уже можно не только тестировать, но и пользоваться C#. NStar - писать оконные приложения, содержащие надписи, кнопки, текстовые поля и даже изображения, например, моя игра "Три в ряд" написана на этом. . .
|
Мысли в слух
kumehtar 18.11.2025
Кстати, совсем недавно имел разговор на тему медитаций с людьми. И обнаружил, что они вообще не понимают что такое медитация и зачем она нужна. Самые базовые вещи. Для них это - когда просто люди. . .
|
Создание Single Page Application на фреймах
krapotkin 16.11.2025
Статья исключительно для начинающих. Подходы оригинальностью не блещут.
В век Веб все очень привыкли к дизайну Single-Page-Application .
Быстренько разберем подход "на фреймах".
Мы делаем одну. . .
|