V tomto článku vytvoríme makro na zoznam mesiacov medzi definovaným obdobím a počtom dní v danom mesiaci. Zobrazí sa tiež celkový počet dní medzi definovaným obdobím.
Vytvorili sme makro „DaysInPeriod“ na výpis mesiacov a počtu dní v mesiaci. Makro je možné vykonať kliknutím na tlačidlo „Odoslať“.
Pred spustením makra je potrebné zadať dátum začiatku a dátumu ukončenia. Začiatočný dátum má hodnotu v bunke „G6“ a ako koncový dátum hodnotu v bunke „G7“. Výstup sa zobrazí nižšie v bunke „F9“.
Po kliknutí na tlačidlo Odoslať sa v makre zobrazí názov mesiaca v stĺpci F a počet dní v danom mesiaci v stĺpci G. V poslednom riadku sa zobrazí celkový počet dní medzi zadaným obdobím.
Logické vysvetlenie
V makre začneme cyklovať od počiatočného dátumu do zadaného koncového dátumu. Počas slučky kontrolujeme posledný dátum mesiaca. Ak sa vyskytne posledný dátum v mesiaci, potom sa názov mesiaca a počet dní v danom mesiaci zobrazí v stĺpcoch F a G. Podobne kontrolujeme aj dátum ukončenia. Keď nastane dátum ukončenia, zobrazí sa záznam za posledný mesiac a počet dní v mesiaci.
Pri kódovaní postupujte podľa nižšie uvedených pokynov
Option Explicit Sub DaysInPeriod () Dim StartDate, EndDate As Date Dim intRow As Integer, intDays As Integer 'Clearing previous content Range ("F10: G1048576"). ClearContents' Getting start and end date StartDate = Range ("G6") EndDate = Rozsah ("G7") 'Inicializácia premennej na číslo počiatočného riadka intRow = 10' Zoznam mesiacov a počtu dní od počiatočného dátumu do koncového dátumu Do intDays = intDays + 1 'Kontrola posledného dátumu v mesiaci alebo keď je StartDate rovnaké to EndDate If (Month (StartDate) Month (StartDate + 1)) Or StartDate = EndDate Then 'Inserting the month name Cells (intRow, 6) = Format (StartDate, "mmmm")' Inserting number of days in the month Cells ( intRow, 7) = intDays 'Presun do ďalšieho riadku intRow = intRow + 1 intDays = 0 End If' Presun na nasledujúci dátum StartDate = StartDate + 1 slučka Do StartDate> EndDate 'Získanie súčtu v poslednom riadku buniek (intRow, 6) = Bunky „Celkové dni“ (intRow, 7) = Application.Sum (rozsah („G10: G“ & intRow)) End Sub
Ak sa vám tento blog páčil, zdieľajte ho so svojimi priateľmi na Facebooku. Môžete nás tiež sledovať na Twitteri a Facebooku.
Budeme radi, ak sa nám ozvete, dajte nám vedieť, ako môžeme zlepšiť našu prácu a zlepšiť ju pre vás. Napíšte nám na emailovú stránku