Tässä artikkelissa luomme makron, joka luettelee kuukaudet määritetyn ajanjakson ja tietyn kuukauden päivien välillä. Se näyttää myös määritettyjen ajanjaksojen välisten päivien kokonaismäärän.
Olemme luoneet "DaysInPeriod" -makron luetteloimaan kuukaudet ja kuukausien päivät. Makro voidaan suorittaa napsauttamalla Lähetä -painiketta.
Ennen makron suorittamista on syötettävä aloitus- ja lopetuspäivä. Se ottaa arvon solussa "G6" alkamispäivänä ja arvon solussa "G7" päättymispäivänä. Lähtö näkyy alla F9 -solussa.
Kun napsautat Lähetä -painiketta, makro näyttää kuukauden nimen sarakkeessa F ja kyseisen kuukauden päivien määrän sarakkeessa G. Viimeisellä rivillä näkyy määritetyn ajanjakson välisten päivien kokonaismäärä.
Looginen selitys
Makrossa aloitamme silmukoinnin alkamispäivästä määritettyyn päättymispäivään. Silmukan aikana tarkistamme kuukauden viimeisen päivämäärän. Jos havaitaan kuukauden viimeinen päivämäärä, kuukauden nimi ja päivien määrä kyseisessä kuussa näytetään sarakkeissa F ja G. Samoin tarkistamme myös lopetuspäivän. Kun päättymispäivä on havaittavissa, viimeisen kuukauden ja kyseisen kuukauden päivien määrä näytetään.
Seuraa koodia alla
Vaihtoehto Explicit Sub DaysInPeriod () Dim StartDate, EndDate Päivämääränä Dim intRow kokonaislukuna, intDays As Integer 'Edellisen sisältöalueen tyhjentäminen ("F10: G1048576"). ClearContentsin aloitus- ja lopetuspäivämäärä Alue ("G7") 'Muuttujan alustaminen alkurivin numeroon intRow = 10' Kuukausien ja päivien lukumäärä alkamispäivästä päättymispäivään Do intDays = intDays + 1 'Tarkistetaan kuukauden viimeinen päivämäärä tai kun StartDate on sama päättymispäivämäärään Jos (kuukausi (aloituspäivä) kuukausi (alkamispäivä + 1)) tai aloituspäivä = lopetuspäivämäärä sitten 'Kuukauden nimen lisääminen Solut (intRow, 6) = muoto (alkamispäivä, "mmmm")' Kuukauden päivien lukumäärän lisääminen ( intRow, 7) = intDays 'Siirtyminen seuraavalle riville intRow = intRow + 1 intDays = 0 End If' Siirtyminen seuraavaan päivämäärään = "Total Days" -solut (intRow, 7) = Application.Sum (Range ("G10: G" & intRow)) End Sub
Jos pidit tästä blogista, jaa se ystävillesi Facebookissa. Voit myös seurata meitä Twitterissä ja Facebookissa.
Haluaisimme kuulla sinusta, kerro meille, kuinka voimme parantaa työtämme ja parantaa sitä sinulle. Kirjoita meille sähköpostitse