U ovom ćemo članku stvoriti makronaredbu za izdvajanje podataka iz radnog lista sirovih podataka u novi radni list, na temelju navedenog datumskog raspona.
Sirovi podaci sastoje se od tri stupca. Prvi stupac sadrži datume, drugi stupac sadrži imena agenata, a treći stupac sadrži broj prodaja koje je agent obavio na taj određeni datum.
Prije izvođenja makroa, od korisnika su potrebna dva unosa. Korisnik mora definirati datum početka i završetka. Na temelju navedenih datuma makro će izdvojiti podatke između definiranog raspona datuma na novi radni list.
Nakon navođenja datuma početka i završetka, korisnik mora kliknuti gumb „Pošalji“ za izvršavanje makronaredbe.
Prilikom pokretanja makronaredbe sortirat će podatke u listu "RawData" na temelju stupca datuma i izdvojiti podatke na temelju navedenog raspona datuma na novo umetnuti radni list.
Logično objašnjenje
Makro uzima podatke za datum početka i završetka iz ćelija J8, odnosno J9. Ova makronaredba prvo sortira podatke u listu "RawData", na temelju stupca A u rastućem redoslijedu. Sortirali smo podatke prema vrijednostima datuma, tako da možemo kopirati podatke u jednom rasponu, nakon primjene filtera za definirani raspon.
Nakon razvrstavanja podataka, primijenite filtar na njih. Primijenjeni filtar temelji se na dva uvjeta, prvi uvjet je da vrijednost u stupcu A treba biti veća ili jednaka datumu početka, a drugi uvjet je da vrijednost u stupcu A treba biti manja ili jednaka datumu završetka.
Nakon primjene filtra, novi radni list se umetne, a filtrirani podaci kopiraju i zalijepe u njega.
Objašnjenje koda
Raspon ("A1"). CurrentRegion.Sort key1: = Raspon ("A1"), order1: = xlAscending, Header: = xlDa
Gornji kôd koristi se za sortiranje podataka u definiranom rasponu. Key1 određuje stupac na temelju kojeg će se podaci sortirati. Redoslijed sortiranja dostavlja se po nalogu1. Već smo definirali uzlazni redoslijed. Za definiranje opadajućeg redoslijeda može se koristiti konstanta xlDescending. Zaglavlje se koristi za određivanje sadrži li raspon podataka zaglavlje.
Raspon ("A1"). CurrentRegion.AutoFilter polje: = 1, Criteria1: = "> =" & StartDate, Operator: = xlAnd, Criteria2: = "<=" & EndDate
Gornji kôd koristi se za primjenu filtra na raspon podataka. Polje 1 navodi broj stupca na koji će se filter primijeniti. Kriteriji1 i Kriteriji2 definiraju uvjete na temelju kojih će se podaci filtrirati. Operator navodi operatora koji će se koristiti između dva uvjeta.
Radni listovi. Dodati poslije: = Radni listovi (Radni listovi.Broj)
Gornji kôd koristi se za umetanje novog radnog lista nakon zadnjeg radnog lista u radnu knjigu.
Kodovi se mogu lako razumjeti jer sam stavio komentare zajedno s kodovima u makronaredbu.
Molimo slijedite dolje za kôd
Sub CopyDataBasedOnDate () 'Onemogućavanje ažuriranja zaslona Application.ScreenUpdating = False' Deklariranje dviju varijabli vrste podataka Date Dim StartDate, EndDate As Date 'Deklariranje varijable za objekt radnog lista Dim MainWorksheet kao radni list' Inicijalizacija varijabli datuma s datumom početka iz ćelije J8 'i datum završetka iz ćelije J9 lista "Makro" StartDate = Listovi ("Makro"). Raspon ("J8"). Vrijednost Krajnji datum = listovi ("Makro"). Raspon ("J9"). Vrijednost 'Pokretanje objekta radnog lista s " RawData "Radni list Postavi MainWorksheet = Radni listovi (" RawData ") 'Aktiviranje objekta radnog lista MainWorksheet.Activate" Sortiranje podataka prema datumu u stupcu A u rastućem rasponu ("A1"). CurrentRegion.Sort _ key1: = Raspon ("A1 "), order1: = xlAscending, _ Header: = xlDa 'Filtrirajte podatke na temelju datumskog raspona između datuma početka i datuma Raspon datuma (" A1 "). CurrentRegion.AutoFilter polje: = 1, Kriteriji1: = _"> = " & StartDate, Operator: = xlAnd, Criteria2: = "<=" & EndDate 'Kopirajte podatke filtra ActiveSheet.AutoFilter.Range.Copy' Umetanje novog rada ksheet nakon posljednjeg radnog lista u radnoj knjizi Worksheets.Add after: = Worksheets (Worksheets.Count) 'Zalijepljenje kopiranih podataka ActiveSheet.Paste' Automatsko podešavanje veličine odabranih stupaca Selection.Columns.AutoFit Range ("A1"). Select ' Aktiviranje lista "RawData" lista MainWorksheet.Activate 'Uklanjanje filtera s radnog lista koji smo primijenili ranije Selection.AutoFilter Sheets ("Macro"). Activate End Sub
Ako vam se dopao ovaj blog, podijelite ga sa svojim prijateljima na Facebooku. Također, možete nas pratiti na Twitteru i Facebooku.
Voljeli bismo vas čuti, javite nam kako možemo poboljšati svoj rad i učiniti ga boljim za vas. Pišite nam na web stranici e -pošte