|
Макрос удаления строк
|
|||
---|---|---|---|
#18+
Подскажите, как написать макрос для удаления строк с одного листа если нет совпадений записей с записями на другом листе? Есть список всех товаров склада на 2 листе, а на первом листе список товаров которые уже заканчиваются, и нужно чтобы на листе 2 остались только те товары которые есть на листе 1. ... |
|||
:
Нравится:
Не нравится:
|
|||
14.10.2015, 11:38 |
|
Макрос удаления строк
|
|||
---|---|---|---|
#18+
Как бы это делалось вручную без построчного сравнения? Заводим на первом листе доп. столбец, где, используя функцию ВПР(), в зависимости от наличия или отсутствия аналога на втором листе ставим или нет некий признак. Фильтруем список по этому признаку, оставляя только записи с признаком "отсутствует". Дружно выделяем отфильтрованные строки и удаляем. Снимаем фильтр. Удаляем ненужный уже дополнительный столбец. Как это превратить в макрос? Включить запись макроса, выполнить указанные выше действия, остановить запись и "причесать" полученный код. Задача выполнена. ... |
|||
:
Нравится:
Не нравится:
|
|||
14.10.2015, 12:06 |
|
Макрос удаления строк
|
|||
---|---|---|---|
#18+
ВПР это единственный вариант? ... |
|||
:
Нравится:
Не нравится:
|
|||
14.10.2015, 12:13 |
|
Макрос удаления строк
|
|||
---|---|---|---|
#18+
С ВПР получила совпадения, а как поставить признак? ... |
|||
:
Нравится:
Не нравится:
|
|||
14.10.2015, 12:22 |
|
Макрос удаления строк
|
|||
---|---|---|---|
#18+
vasilina, 1 Вариант . ВПР возвращает НД, если записи не найдено в Лист2. Таким образом, все что НД - это Вам нужно оставить. Фильтруете по условию "не равно НД". Т.е. снимаете галочку с НД, все остальное удаляете. 2 Вариант Как удалить строки по условию Копируете код. Если Лист2 с товарами к удалению так и называется - то даже менять ничего не надо. Если лист называется иначе, то меняете в строке: Код: vbnet 1.
Лист2 на имя своего листа. Главное, чтобы товары с первой строки начинались. А далее переходите на лист1(из которого надо удалить строки) и запускаете код. Он удалит строки, в первом столбце которых есть значение из списка товаров на Лист2. ... |
|||
:
Нравится:
Не нравится:
|
|||
14.10.2015, 12:39 |
|
Макрос удаления строк
|
|||
---|---|---|---|
#18+
А там, где НЕсовпадения - там что? Если всё сделано правильно, должно быть #Н/Д. Вполне себе пригодное для фильтра значение. ... |
|||
:
Нравится:
Не нравится:
|
|||
14.10.2015, 12:40 |
|
Макрос удаления строк
|
|||
---|---|---|---|
#18+
Скопировала макрос без изменений, и вместо того чтобы удалить данные которых нет на 1 листе, удалились все записи на листе 1. Код: vbnet 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23.
... |
|||
:
Нравится:
Не нравится:
|
|||
14.10.2015, 13:04 |
|
Макрос удаления строк
|
|||
---|---|---|---|
#18+
Нашла еще вот такой макрос, но мне не понятно что в нем поменять для своей задачи Код: vbnet 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17.
... |
|||
:
Нравится:
Не нравится:
|
|||
14.10.2015, 13:07 |
|
Макрос удаления строк
|
|||
---|---|---|---|
#18+
vasilinaи вместо того чтобы удалить данныеСкопировать мало. Надо правильно применить. Лист2 должен в первом столбце содержать значения для удаления. На первом листе значения к сравнению так же должны быть на первом листе. ... |
|||
:
Нравится:
Не нравится:
|
|||
14.10.2015, 13:29 |
|
Макрос удаления строк
|
|||
---|---|---|---|
#18+
они итак в первых столбцах, в прикрепленном файле на листе 1 в столбце 1 данные для сравнения, лист 2 столбец 1 данные для удаления ... |
|||
:
Нравится:
Не нравится:
|
|||
14.10.2015, 13:34 |
|
Макрос удаления строк
|
|||
---|---|---|---|
#18+
vasilinaи вместо того чтобы удалить данные которых нет на 1 листе, удалились все записи на листе 1Все, понял. Да, код делает ровно противоположное. В Вашем случае ВПР, записанная на втором листе вполне поможет. Прописываете ВПР: Код: vbnet 1.
все, что #Н/Д - удаляете через обычный фильтр. Для удаления же кодом надо код переписывать и искать вхождение. ... |
|||
:
Нравится:
Не нравится:
|
|||
14.10.2015, 13:35 |
|
Макрос удаления строк
|
|||
---|---|---|---|
#18+
Вот код: Код: vbnet 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. 28. 29. 30. 31. 32. 33. 34. 35. 36. 37. 38. 39. 40.
... |
|||
:
Нравится:
Не нравится:
|
|||
14.10.2015, 13:40 |
|
Макрос удаления строк
|
|||
---|---|---|---|
#18+
А если данные находятся не в первых столбцах то поменять для первого листа arr = .Range(.Cells(1, "номер нужного столбца"), .Cells(.Rows.Count, 1).End(xlUp)) и там же для второго, так? ... |
|||
:
Нравится:
Не нравится:
|
|||
14.10.2015, 13:47 |
|
Макрос удаления строк
|
|||
---|---|---|---|
#18+
vasilina, почти: .Range(.Cells(1, "номер нужного столбца" ), .Cells(.Rows.Count, "номер нужного столбца" ).End(xlUp)) ... |
|||
:
Нравится:
Не нравится:
|
|||
14.10.2015, 13:52 |
|
Макрос удаления строк
|
|||
---|---|---|---|
#18+
Сделала вот так, но удаляет не все, на листе1 83 записи, а на листе6 после запуска макроса осталось 257 записей, где не так поменяла? И еще как сделать чтобы не 1 строки начал проверку а с 11? Код: vbnet 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. 28. 29. 30. 31. 32. 33. 34. 35. 36. 37. 38. 39. 40.
... |
|||
:
Нравится:
Не нравится:
|
|||
14.10.2015, 14:12 |
|
Макрос удаления строк
|
|||
---|---|---|---|
#18+
vasilina, вообще-то, код надо тогда менять. Вы приложили пример данных - я под него код написал. Если не в состоянии поменять или сделать самостоятельно, то лучше и выкладывать файлы с реальной структурой данных. Вторая часть кода сейчас удаляет совсем не то, что ожидаете. Правильно вместо этого блока: Код: vbnet 1. 2. 3.
написать так: Код: vbnet 1. 2. 3.
А насчет записей больше, чем ожидалось - откуда мне знать? Может у Вас там записи повторяются. На выложенном Вами в теме файле первоначальный код правильно работает и удаляет все, что надо. ... |
|||
:
Нравится:
Не нравится:
|
|||
14.10.2015, 14:21 |
|
|
start [/forum/topic.php?fid=60&fpage=28&tid=2155766]: |
0ms |
get settings: |
11ms |
get forum list: |
12ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
28ms |
get topic data: |
13ms |
get forum data: |
3ms |
get page messages: |
52ms |
get tp. blocked users: |
1ms |
others: | 295ms |
total: | 423ms |
0 / 0 |