Šajā rakstā mēs izveidosim makro, lai iegūtu datus no neapstrādātu datu darblapas uz jaunu darblapu, pamatojoties uz norādīto datumu diapazonu.
Neapstrādāti dati sastāv no trim kolonnām. Pirmajā slejā ir datumi, otrajā slejā ir aģentu vārdi, bet trešajā slejā ir aģenta pārdoto preču skaits konkrētajā datumā.
Pirms makro palaišanas no lietotāja ir nepieciešami divi ievadi. Lietotājam ir jānosaka sākuma un beigu datums. Pamatojoties uz norādītajiem datumiem, makro izvilks datus no noteiktā datumu diapazona uz jaunu darblapu.
Pēc sākuma un beigu datumu norādīšanas lietotājam ir jānoklikšķina uz pogas “Iesniegt”, lai izpildītu makro.
Palaižot makro, tas sakārtos datus lapā “RawData”, pamatojoties uz datuma kolonnu, un no jauna ievietotajā darblapā iegūs datus, pamatojoties uz norādīto datumu diapazonu.
Loģisks skaidrojums
Makro sākuma un beigu datumu ievada attiecīgi no šūnām J8 un J9. Šis makro vispirms kārto datus lapā “RawData”, pamatojoties uz A sleju augošā secībā. Mēs esam sakārtojuši datus pēc datuma vērtībām, lai mēs varētu kopēt datus vienā diapazonā pēc filtra piemērošanas noteiktajam diapazonam.
Pēc datu kārtošanas uzklājiet tiem filtru. Lietotā filtra pamatā ir divi nosacījumi. Pirmais nosacījums ir tāds, ka A slejas vērtībai jābūt lielākai vai vienādai ar sākuma datumu, un otrais nosacījums ir tāds, ka A slejas vērtībai jābūt mazākai vai vienādai ar beigu datumu.
Pēc filtra lietošanas jaunā darblapa tiek ievietota, un filtrētie dati tiek kopēti un ielīmēti tajā.
Koda skaidrojums
Diapazons ("A1"). CurrentRegion.Sort key1: = Diapazons ("A1"), secība1: = xlPieaugoši, galvene: = xlJā
Iepriekš minētais kods tiek izmantots, lai kārtotu datus noteiktā diapazonā. Key1 norāda kolonnu, pamatojoties uz kuru dati tiks sakārtoti. Kārtošanas kārtību nodrošina pasūtījums1. Mēs jau esam definējuši augošo secību. Lai definētu dilstošo secību, var izmantot xlDescending konstanti. Galvene tiek izmantota, lai norādītu, vai datu diapazonā ir galvene.
Diapazons ("A1"). CurrentRegion.AutoFilter lauks: = 1, Criteria1: = "> =" & StartDate, operators: = xlAnd, Criteria2: = "<=" & EndDate
Iepriekš minētais kods tiek izmantots, lai datu diapazonā lietotu filtru. 1. lauks norāda kolonnas numuru, kuram tiks piemērots filtrs. Kritēriji 1 un Kritērijs 2 nosaka nosacījumus, pēc kuriem dati tiks filtrēti. Operators norāda operatoru, kas tiks izmantots starp diviem nosacījumiem.
Darblapas. Pievienot pēc: = Darblapas (Worksheets.Count)
Iepriekš minētais kods tiek izmantots, lai ievietotu jauno darblapu pēc pēdējās darbgrāmatas darblapas.
Var viegli saprast kodus, jo esmu ievietojis komentārus kopā ar kodiem makro.
Lūdzu, sekojiet tālāk norādītajam kodam
Sub CopyDataBasedOnDate () "Ekrāna atjauninājumu atspējošana Application.ScreenUpdating = False" Datu datuma tipa Dim mainīgo divu mainīgo deklarēšana Dim StartDate, EndDate As Date "Deklarējot mainīgo darblapas objektam Dim MainWorksheet As Workheet" Datuma mainīgo inicializēšana ar sākuma datumu no šūnas J8 "un beigu datums no lapas "Macro" šūnas J9 StartDate = Sheets ("Macro"). Diapazons ("J8"). Vērtība EndDate = Sheets ("Macro"). Diapazons ("J9"). Vērtība "Inicializējot darblapas objektu ar" RawData "darblapa Set MainWorksheet = Worksheets (" RawData ") 'Darblapas objekta MainWorksheet.Activate' aktivizēšana 'Datu kārtošana pēc datuma A slejā augošā secībā Range (" A1 "). CurrentRegion.Sort _ key1: = Range (" A1 "), secība1: = xlAsecending, _ Header: = xlJā 'Filtrējiet datus, pamatojoties uz datumu diapazonu starp sākuma datumu un beigu datumu diapazonu (" A1 "). CurrentRegion.AutoFilter lauks: = 1, Criteria1: = _"> = " & StartDate, Operators: = xlAnd, Criteria2: = "<=" & EndDate 'Kopēt filtra datus ActiveSheet.AutoFilter.Range.Copy' Ievietojot jaunu darbu ksheet pēc pēdējās darbgrāmatas darblapas darblapas. Pievienot pēc: = Darblapas (darblapas. Skaitlis) 'Kopēto datu ielīmēšana ActiveSheet.Paste' Automātiski pielāgojot atlasīto kolonnu lielumu Selection.Columns.AutoFit Range ("A1"). Atlasiet ' Aktivizējiet lapu "RawData" MainWorksheet.Activate 'Filtra noņemšana no darblapas, kuru izmantojām iepriekš Selection.AutoFilter Sheets ("Makro"). Aktivizēt beigu apakšdaļu
Ja jums patika šis emuārs, kopīgojiet to ar saviem draugiem Facebook. Varat arī sekot mums Twitter un Facebook.
Mēs labprāt uzklausītu jūsu viedokli, dariet mums zināmu, kā mēs varam uzlabot savu darbu un padarīt to labāku jums. Rakstiet mums e -pasta vietnē