Овај водич ће показати како избрисати или уметнути редове на основу вредности ћелије.
Избриши ред на основу вредности ћелије
Ово ће проћи кроз опсег и избрисати редове ако колона А каже „обриши“.
1234567891011121314151617181920 | Суб ДелетеРовсБаседонЦеллВалуе ()'Декларишите променљивеДим ЛастРов Ас Лонг, ФирстРов Ас ЛонгДим Ров Ас ЛонгСа АцтивеСхеет -ом'Дефинишите први и последњи редФирстРов = 1ЛастРов = .УседРанге.Ровс (.УседРанге.Ровс.Цоунт) .Ров„Провлачење кроз редове (од дна до врха)За ред = ЛастРов до ФирстРов Корак -1Иф .Ранге ("А" & Ров) .Валуе = "делете" Затим.Ранге ("А" & Ров) .ЕнтиреРов.ДелетеКрај АкоСледећи редЗавршитиЕнд Суб |
Морамо започети петљу са доњег реда јер ће брисање реда пребацити податке, прескачући редове ако петљу вршите одоздо према доле.
Такође, приметите да уместо ручног уноса у последњи ред, израчунавамо последњи коришћени ред.
Избриши ред - на основу филтера
У претходном примеру смо петљали кроз редове, бришући сваки ред који испуњава критеријуме. Алтернативно, можемо користити Екцел -ов аутофилтер за филтрирање редова на основу неких критеријума, а затим избрисати видљиве редове:
12345678910111213141516171819202122232425 | Суб ФилтерАндДелетеРовс ()'Прогласи вс променљивомДим вс Ас ВорксхеетПоставите вс = АцтивеСхеет'Ресетујте постојеће филтереНа Грешка Настави даљевс.СховАллДатаОн Еррор ГоТо 0'Примени филтервс.Ранге ("а1: д100"). Поље аутоматског филтрирања: = 1, критеријуми1: = "брисање"'Обриши редовеАпплицатион.ДисплаиАлертс = Нетачновс.Ранге ("а1: д100"). СпециалЦеллс (клЦеллТипеВисибле) .ДелетеАпплицатион.ДисплаиАлертс = Тачно'Очисти филтерНа Грешка Настави даљевс.СховАллДатаОн Еррор ГоТо 0Енд Суб |
Избриши ред на основу ћелијских критеријума
Ово ће проћи кроз опсег и избрисати редове ако ћелија у колони А задовољава одређене критеријуме (<0):
1234567891011121314151617181920 | Суб ДелетеРовсБаседонЦеллВалуе ()'Декларишите променљивеДим ЛастРов Ас Лонг, ФирстРов Ас ЛонгДим Ров Ас ЛонгСа АцтивеСхеет -ом'Дефинишите први и последњи редФирстРов = 1ЛастРов = .УседРанге.Ровс (.УседРанге.Ровс.Цоунт) .Ров„Провлачење кроз редове (од дна до врха)За ред = ЛастРов до ФирстРов Корак -1Иф .Ранге ("А" & Ров) .Валуе <0 Затим.Ранге ("А" & Ров) .ЕнтиреРов.ДелетеКрај АкоСледећи редЗавршитиЕнд Суб |
ВБА програмирање | Генератор кода ради за вас!
Избриши ред ако је ћелија празна
Ово ће проћи кроз опсег и избрисати ред ако је ћелија у колони А празна:
1234567891011121314151617181920 | Суб ДелетеРовсБаседонЦеллВалуе ()'Декларишите променљивеДим ЛастРов Ас Лонг, ФирстРов Ас ЛонгДим Ров Ас ЛонгСа АцтивеСхеет -ом'Дефинишите први и последњи редФирстРов = 1ЛастРов = .УседРанге.Ровс (.УседРанге.Ровс.Цоунт) .Ров„Провлачење кроз редове (од дна до врха)За ред = ЛастРов до ФирстРов Корак -1Иф .Ранге ("А" & Ров) .Валуе = "" Онда.Ранге ("А" & Ров) .ЕнтиреРов.ДелетеКрај АкоСледећи редЗавршитиЕнд Суб |
Избришите празан ред
Алтернативно, ако желите да избришете ред ако је цео ред празан (кликните на везу за мало другачији метод), можете користити овај код:
1234567891011121314151617181920 | Суб ДелетеБланкРовс ()'Декларишите променљивеДим ЛастРов Ас Лонг, ФирстРов Ас ЛонгДим Ров Ас ЛонгСа АцтивеСхеет -ом'Дефинишите први и последњи редФирстРов = 1ЛастРов = .УседРанге.Ровс (.УседРанге.Ровс.Цоунт) .Ров„Провлачење кроз редове (од дна до врха)За ред = ЛастРов до ФирстРов Корак -1Ако је ВорксхеетФунцтион.ЦоунтА (.Ровс (Ров)) = 0 Затим.Редови (Ред) .ЕнтиреРов.ДелетеКрај АкоСледећи редЗавршитиЕнд Суб |
Избриши ред ако ћелија садржи вредност
Ово ће проћи кроз опсег и избрисати ред ако ћелија у колони А није празна:
1234567891011121314151617181920 | Суб ДелетеРовсБаседонЦеллВалуе ()'Декларишите променљивеДим ЛастРов Ас Лонг, ФирстРов Ас ЛонгДим Ров Ас ЛонгСа АцтивеСхеет -ом'Дефинишите први и последњи редФирстРов = 1ЛастРов = .УседРанге.Ровс (.УседРанге.Ровс.Цоунт) .Ров„Провлачење кроз редове (од дна до врха)За ред = ЛастРов до ФирстРов Корак -1Иф .Ранге ("А" & Ров) .Валуе "" Затим.Ранге ("А" & Ров) .ЕнтиреРов.ДелетеКрај АкоСледећи редЗавршитиЕнд Суб |
Уморни сте од тражења примера ВБА кода? Испробајте АутоМацро!
Уметните ред на основу вредности ћелије
Ово ће проћи кроз опсег, убацујући редове ако одређена ћелија у том реду каже „убаци“:
1234567891011121314151617181920 | Суб ИнсертРовсБаседонЦеллВалуе ()'Декларишите променљивеДим ЛастРов Ас Лонг, ФирстРов Ас ЛонгДим Ров Ас ЛонгСа АцтивеСхеет -ом'Дефинишите први и последњи редФирстРов = 1ЛастРов = .УседРанге.Ровс (.УседРанге.Ровс.Цоунт) .Ров„Провлачење кроз редове (од дна до врха)За ред = ЛастРов до ФирстРов Корак -1Ако .Ранге ("А" & Ров) .Валуе = "инсерт" Затим.Ранге ("А" & Ред) .ЕнтиреРов.ИнсертКрај АкоСледећи редЗавршитиЕнд Суб |