Šiame straipsnyje mes sukursime makrokomandą, kad išvardytume mėnesius tarp apibrėžto laikotarpio ir dienų skaičiaus tą mėnesį. Taip pat bus rodomas bendras dienų skaičius tarp nustatyto laikotarpio.
Mes sukūrėme „DaysInPeriod“ makrokomandą, kad išvardytume mėnesius ir dienų skaičių per mėnesį. Makrokomandą galima vykdyti spustelėjus mygtuką „Pateikti“.
Prieš paleisdami makrokomandą, turite įvesti pradžios ir pabaigos datą. Ji turi reikšmę langelyje „G6“ kaip pradžios datą ir reikšmę langelyje „G7“ kaip pabaigos datą. Išvestis bus rodoma žemiau langelyje „F9“.
Spustelėjus mygtuką Pateikti, makro stulpelis F stulpelyje parodys mėnesio pavadinimą, o G - to mėnesio dienų skaičių. Paskutinėje eilutėje bus rodomas bendras dienų skaičius tarp nurodyto laikotarpio.
Loginis paaiškinimas
Makrokomandoje ciklus pradedame nuo pradžios datos iki nurodytos pabaigos datos. Kai ciklas atliekamas, mes patikriname paskutinę mėnesio datą. Jei aptinkama paskutinė mėnesio data, tada mėnesio pavadinimas ir dienų skaičius tą mėnesį rodomi F ir G stulpeliuose. Panašiai mes taip pat tikriname, ar nėra pabaigos datos. Kai nustatoma pabaigos data, rodomas paskutinio mėnesio įrašas ir to mėnesio dienų skaičius.
Sekite toliau pateiktą kodą
Parinktis „Explicit Sub DaysInPeriod“ () Dim StartDate, EndDate As Date Dim intRow as Integer, intDays As Integer 'Ankstesnio turinio diapazono išvalymas ("F10: G1048576"). "ClearContents" pradžios ir pabaigos data StartDate = Diapazonas ("G6") EndDate = Diapazonas ("G7") 'Kintamojo inicijavimas į pradžios eilutės numerį intRow = 10' Sąrašas mėnesių ir dienų skaičiaus nuo pradžios iki pabaigos datos Do intDays = intDays + 1 'Tikrinama paskutinė mėnesio data arba kai pradžios data yra lygi į pabaigos datą, jei (mėnuo (pradžios data) mėnuo (pradžios data + 1)) arba pradžios data = pabaigos data tada 'mėnesio pavadinimo langelių įterpimas (intRow, 6) = formatas (pradžios data, "mmmm")' mėnesio dienų skaičiaus įterpimas langeliai ( intRow, 7) = intDays 'Perėjimas prie kitos eilutės intRow = intRow + 1 intDays = 0 End If' Perėjimas prie kitos datos StartDate = StartDate + 1 Loop Before StartDate> EndDate 'Sumos gavimas paskutinėje eilutėje Langeliai (intRow, 6) = "Iš viso dienų" langeliai (intRow, 7) = Application.Sum (Diapazonas ("G10: G" ir intRow)) Pabaiga
Jei jums patiko šis tinklaraštis, pasidalykite juo su draugais „Facebook“. Be to, mus galite sekti „Twitter“ ir „Facebook“.
Mes norėtume išgirsti jūsų nuomonę, praneškite mums, kaip galime pagerinti savo darbą ir padaryti jį geresnį. Rašykite mums el