Enumerați și adăugați zile de luni într-o perioadă stabilită utilizând VBA în Microsoft Excel

Anonim

În acest articol, vom crea o macrocomandă pentru a lista lunile dintre perioada definită și, de asemenea, numărul de zile din luna respectivă. De asemenea, va afișa numărul total de zile dintre perioada definită.

Am creat macrocomanda „DaysInPeriod” pentru a afișa lunile și numărul de zile dintr-o lună. Macro-ul poate fi executat făcând clic pe butonul „Trimite”.

Înainte de a rula macrocomanda, trebuie să furnizați date de începere și de sfârșit. Are valoare în celula „G6” ca dată de începere și valoare în celula „G7” ca dată de încheiere. Ieșirea va fi afișată mai jos în celula „F9”.

Făcând clic pe butonul Trimitere, macro va afișa numele lunii în coloana F și numărul de zile din luna respectivă în coloana G. Ultimul rând va afișa numărul total de zile dintre perioada specificată.

Explicație logică

În macro, începem să facem o buclă de la data de începere până la data de sfârșit specificată. În buclă, verificăm ultima dată a unei luni. Dacă se întâlnește ultima dată a unei luni, atunci numele lunii și numărul de zile din luna respectivă sunt afișate în coloanele F și G. în mod similar, verificăm și data de încheiere. Când se întâlnește data de încheiere, este afișată intrarea pentru ultima lună și numărul de zile din luna respectivă.

Vă rugăm să urmați codul de mai jos

 Opțiune Explicit Sub DaysInPeriod () Dim StartDate, EndDate as Date Dim intRow As Integer, intDays As Integer 'Clearing content previous Range ("F10: G1048576"). Gama ("G7") 'Inițializarea variabilei la numărul rândului inițial intRow = 10' Listarea lunilor și a numărului de zile de la data de începere până la data de încheiere Doar intDays = intDays + 1 'Verificarea ultimei date a lunii sau când StartDate este egală to EndDate If (Month (StartDate) Month (StartDate + 1)) Sau StartDate = EndDate Apoi 'Inserting the month name Cells (intRow, 6) = Format (StartDate, "mmmm")' Inserting number of days in the month Cells ( intRow, 7) = IntDays 'Trecerea la rândul următor intRow = intRow + 1 intDays = 0 End If' Trecerea la data următoare StartDate = StartDate + 1 Buclă Până la StartDate> EndDate 'Obținerea sumei în ultimul rând Celule (intRow, 6) = "Total Days" Cells (intRow, 7) = Application.Sum (Range ("G10: G" & intRow)) End Sub 

Dacă ți-a plăcut acest blog, distribuie-l prietenilor tăi de pe Facebook. De asemenea, ne puteți urmări pe Twitter și Facebook.

Ne-ar plăcea să aflăm de la dvs., să ne anunțați cum putem îmbunătăți munca noastră și o putem îmbunătăți. Scrieți-ne pe site-ul de e-mail