Excel VBA за копиране на редове в друг работен лист въз основа на критерии

  • Споделя Това
Hugh West

Данни за справяне , въз основа на критерии, от един лист в друг е една от често извършваните задачи в Excel. Ако имате много редове и искате да ги копирате в друг лист въз основа на някакви критерии, това може да бъде доста досадно и отнемащо време. Но с Microsoft Приложение на Visual Basic (VBA) можете да създавате макроси, с които лесно да копирате данни от един лист в друг въз основа на различни критерии. В тази статия ще ви покажа как можете да копирате редове в друг работен лист въз основа на 2 различни вида критерии с помощта на Excel VBA .

Да речем, че имате следния набор от данни в работен лист с име " Данни ", където са дадени продажбите и областите на продажби на различните търговци. Сега искате да копирате определени редове въз основа на някои критерии в друг лист.

Изтегляне на работна тетрадка за практика

Копиране на редове в друг работен лист въз основа на Criteria.xlsm

2 начина за копиране на редове в друг работен лист въз основа на критерии чрез Excel VBA

1. Копиране на редове в друг работен лист въз основа на текстови критерии

В тази демонстрация ще ви покажа как да копирате редове от един работен лист в друг въз основа на текстови критерии. Да предположим, че искате да копирате данните за продавачите, които продават в Вирджиния в работен лист с име Продажби в района използване на Excel VBA За да направите това, първо,

➤ Преса ALT+F11 за да отворите VBA прозорец.

В VBA прозорец,

➤ Щракнете върху Вмъкване на и изберете Модул .

Това ще отвори Модул(Код) прозорец. Сега,

➤ Въведете следния код в Модул(Код) прозорец,

 Sub Copy_Criteria_Text() Application.ScreenUpdating = False With ActiveSheet .AutoFilterMode = False With Range("C1", Range("C" & Rows.Count).End(xlUp)) .AutoFilter 1, "Virginia" On Error Resume Next .Offset(1).EntireRow.Copy Sheet3.Range("A" & Rows.Count).End(xlUp).Offset(1) End With .AutoFilterMode = False End With Application.ScreenUpdating = TrueSheet3.Select Край на подточката 

Кодът ще създаде макрос с име Copy_Criteria_Text която ще търси Virginia в колона C на текущия работен лист и връща редовете, които съдържат Virginia в работния лист с име Продажби в района (лист 3).

След това,

➤ Затворете или минимизирайте VBA прозорец.

➤ Преса ALT+F8

Това ще отвори Macro прозорец.

➤ Изберете Copy_Criteria_Text в Име на макрос и щракнете върху Изпълнявайте .

В резултат на това редовете с Virginia ще бъдат копирани в работния лист с име Продажби в района

Прочетете още: Как да копирате редове автоматично в Excel в друг лист (4 метода)

2. Копиране на редове в друг работен лист въз основа на критерии за брой

Сега ще ви покажа как можете да копирате редове от един работен лист в друг работен лист въз основа на критерии за брой. Да предположим, че искате да копирате данните за продажбите, които са по-големи от 100 000 USD, в работен лист с име Топ продажби За да направите това, първо,

➤ Преса ALT+F11 за да отворите VBA прозорец.

В VBA прозорец,

➤ Щракнете върху Вмъкване на и изберете Модул .

Това ще отвори Модул(Код) прозорец. Сега,

➤ Въведете следния код в Модул(Код) прозорец,

 Sub Copy_Criteria_Number() Application.ScreenUpdating = False With ActiveSheet .AutoFilterMode = False With Range("D1", Range("D" & Rows.Count).End(xlUp)) .AutoFilter 1, ">100000" On Error Resume Next .Offset(1).EntireRow.Copy Sheet4.Range("A" & Rows.Count).End(xlUp).Offset(1) End With .AutoFilterMode = False End With Application.ScreenUpdating =True Sheet4.Select End Sub 

Кодът ще създаде макрос с име Copy_Criteria_Number която ще търси стойности, по-големи от 100000, в колона D на работния лист с име Данни и да върнете редовете, които съдържат стойности на продажбите над $100000 в работния лист с име Топ продажби (лист4).

След това,

➤ Затворете или минимизирайте VBA прозорец.

➤ Преса ALT+F8

Това ще отвори Macro прозорец.

➤ Изберете Copy_Criteria_Number в Име на макрос и щракнете върху Изпълнявайте .

В резултат на това редовете, които съдържат стойности на продажбите над 100 000 USD, ще бъдат копирани в Топ продажби работен лист.

Прочетете още: Как да копирате няколко реда в Excel с помощта на макрос (4 примера)

Заключение

С помощта на двата метода от тази статия ще можете да копирате редове от един работен лист в друг работен лист въз основа на различни критерии, като използвате Excel VBA. Можете да използвате първия метод за текстови критерии, а втория метод - за цифрови критерии. Ако имате някакви неясноти относно някой от методите, моля, не се колебайте да оставите коментар.

Хю Уест е опитен обучител и анализатор на Excel с над 10 години опит в индустрията. Има бакалавърска степен по счетоводство и финанси и магистърска степен по бизнес администрация. Хю има страст към преподаването и е разработил уникален подход на преподаване, който е лесен за следване и разбиране. Неговите експертни познания по Excel са помогнали на хиляди студенти и професионалисти по целия свят да подобрят уменията си и да постигнат отлични резултати в кариерата си. Чрез своя блог Хю споделя знанията си със света, като предлага безплатни уроци за Excel и онлайн обучение, за да помогне на хората и фирмите да достигнат пълния си потенциал.