0 / 0 / 0
Регистрация: 26.09.2018
Сообщений: 11
|
|
1 | |
Excel Макрос для добавления нужных строк из одной таблицы в другую05.12.2018, 15:47. Показов 12060. Ответов 10
Метки нет (Все метки)
Добрый день!
Я полный новичок в написании макросов, и мне крайне необходима помощь.. Ситуация: есть документ Excel, в котором две вкладки: «выгрузка» сотрудников, которая формируется ежедневно из системы и «список» сотрудников. По своей структуре таблицы идентичны, однако в «списке» сотрудников нет только что принятых в организацию сотрудников. Они отображаются в выгрузке. Задача: Необходимо из «выгрузки» перенести вновь принятых сотрудников в «список». На данный момент во вкладке «выгрузка» я сделала столбец «мониторинг», который на основе формул определяет, какого сотрудника необходимо внести на вкладку «список». Т.е. перенести информацию из 7 строки вкладки «Выгрузка», на первую пустую строку после таблицы на вкладку «Список». В данном случае это 20 строка. А затем аналогично перенести строку 13 вкладки «Выгрузка» на 21 строку вкладки «Список». Подскажите, пожалуйста, синтаксис написания макроса, который бы самостоятельно определял пустую строку на вкладке «Список» для дальнейшего переноса информации. Заранее всем большое спасибо за помощь!
0
|
05.12.2018, 15:47 | |
Ответы с готовыми решениями:
10
Добавления даных из одной таблицы в другую без дублирования Макрос на распределение из одной таблицы в другую Народ подскажите макрос который бы из одной таблицы по id вписывал содержимое в другую?! Запрос на вставку строк из одной таблицы в другую |
oh my god
|
||||||
05.12.2018, 16:49 | 2 | |||||
Сообщение было отмечено Ksania как решение
Решение
Тебе с форматированием надо ?
0
|
0 / 0 / 0
Регистрация: 26.09.2018
Сообщений: 11
|
||||||
05.12.2018, 17:29 [ТС] | 4 | |||||
fever brain, , большое спасибо за оперативную помощь!
Для рутинной офисной работы это просто спасение!! Искренне пытаюсь понять эту часть макроса, но пока... безуспешно
0
|
oh my god
|
|
05.12.2018, 17:37 | 5 |
Здесь в теле цикла производится поиск по слову *внести* из второй таблицы
и записывается вся строка кроме ячейки с этим словом в коллекцию Col.add ... цикл бесконечный и при совпадении адреса производится выход из цикла If Err Then Exit Do затем эти строчки копируются перебором из коллекции в лист Spisok Добавлено через 2 минуты а записываются новые строчки в пустые строчки листа spisok которые находятся ниже, вы писали что это 20-21 строчка у меня это 19-20 Можно еще улучшить, ускорить, и защитить от *дурака* этот макрос
0
|
oh my god
|
||||||
05.12.2018, 17:45 | 6 | |||||
Вот например. если изменить найденную ячейку со словом *внести* на *ок* то
строки перенесуться только один раз Вот небольшое дополнение r.Value = "Ок"
и из коллекции скинули в первую таблицу, так вам форматирование (закрашенный фон) нужно ?
0
|
0 / 0 / 0
Регистрация: 26.09.2018
Сообщений: 11
|
|
05.12.2018, 17:52 [ТС] | 7 |
fever brain, боюсь, что единственный "дурак" тут я
Общий принцип макроса поняла.. Но есть пара частных идиотских вопросов: что конкретно обозначают эти строки? Никогда такого не видела Set r = .[a1] Set r = .Cells.Find("Внести", r) col.Add .Range(.Cells(r.Row, 1), .Cells(r.Row, r.Column - 1)), r.Address Добавлено через 3 минуты Нет, форматирование можно убрать
0
|
oh my god
|
||||||
05.12.2018, 18:55 | 8 | |||||
Set r = .[a1] - ссылка на стартовую ячейку поиска точка это потомучто мы ее используем в теле доступа листа *выгрузка*
With Sheets("Выгрузка") Set r = .Cells.Find("Внести", r) - следующая r (range) ссылается на предыдущую в теле цикла и тд пока не возникнет ошибки повтора если там было 10 строк со словом внести то цикл завершиться ровно после 10 строк записи col.Add .Range(.Cells(r.Row, 1), .Cells(r.Row, r.Column - 1)), r.Address --- а в коллекцию записываем весь диапазон (всю найденную строчку) с кодовым словом адреса это может быть L7 или L13 Вот немного подправил
1
|
0 / 0 / 0
Регистрация: 26.09.2018
Сообщений: 11
|
||||||
06.12.2018, 13:48 [ТС] | 9 | |||||
fever brain, большое спасибо за вашу помощь!
Конечно, не до конца поняла все тонкости макроса.. надеюсь, понимание придет со временем) Но макрос работает просто безупречно!! Даже наши огромные выгрузки его не пугают Единственное, столкнулась с другой трудностью. Макрос определяет сотрудников, которых необходимо перенести в другую таблицу по слову "внести". Это слово в оригинале моего документа выводит формула, а макрос распознает только значение. Пробовала написать еще один макрос заместо формулы, но он не работает: думает очень долго,а потом напротив всех сотрудников в выгрузке пишет "внести". Суть закладывала простую: сверь каждый табельный номер из "выгрузки" с табельными номерами в "списке". Если находятся идентичный номер в "списке", но в выгрузке ставь "Ок", в противном случае -"Внести". Может подскажете, в чем моя ошибка? Буду очень благодарна
0
|
oh my god
|
|
07.12.2018, 08:54 | 10 |
Я не волшебник. а всего-лишь военный хакер
но! в бугалтеры к вам я тож не нанимался могу предложить только песню http://megapesni.me/get/online... lbaski.mp3
0
|
0 / 0 / 0
Регистрация: 26.09.2018
Сообщений: 11
|
|
07.12.2018, 09:24 [ТС] | 11 |
fever brain, в любом случае, еще раз большое спасибо за помощь!
0
|
07.12.2018, 09:24 | |
07.12.2018, 09:24 | |
Помогаю со студенческими работами здесь
11
Перенос выбраных строк из одной таблицы в другую - Delphi БД Не получается вставить несколько строк из одной таблицы в другую Как переместить множество строк с одной таблицы в другую Ошибка при переносе строк из одной таблицы в другую Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |