В тази статия ще създадем макрос за изброяване на месеци между определения период, както и броя на дните в този конкретен месец. Той също така ще показва общия брой дни между определения период.
Създадохме макрос „DaysInPeriod“, за да изброим месеците и броя на дните в месеца. Макросът може да бъде изпълнен, като щракнете върху бутона „Изпращане“.
Преди да стартирате макроса, трябва да предоставите въвеждане за начална и крайна дата. Той приема стойност в клетка „G6“ като начална дата и стойност в клетка „G7“ като крайна дата. Изходът ще бъде показан по -долу в клетка „F9“.
След като щракнете върху бутона за изпращане, макросът ще покаже името на месеца в колона F и броя на дните в този месец в колона G. Последният ред ще показва общия брой дни между посочения период.
Логично обяснение
В макроса започваме цикъл от начална дата до посочената крайна дата. Докато циклично проверяваме, проверяваме за последната дата от месец. Ако срещнете последната дата от месец, тогава името на месеца и броят на дните в този месец се показват в колони F и G. по подобен начин, ние също проверяваме за крайна дата. Когато срещнете крайна дата, се показва запис за последния месец и броя на дните в този месец.
Моля, следвайте кода по -долу
Опция Изрично Sub DaysInPeriod () Dim StartDate, EndDate As Date Dim intRow As Integer, intDays As Integer 'Изчистване на предишния диапазон на съдържанието ("F10: G1048576"). ClearContents' Първа начална и крайна дата StartDate = Range ("G6") EndDate = Диапазон ("G7") 'Инициализиране на променливата към номер на начален ред intRow = 10' Изброяване на месеците и броя на дните от началната дата до крайната дата Направете intDays = intDays + 1 'Проверка за последната дата на месеца или когато StartDate е равен до EndDate If (Month (StartDate) Month (StartDate + 1)) Or StartDate = EndDate then 'Вмъкване на името на месеца Cells (intRow, 6) = Format (StartDate, "mmmm")' Вмъкване на броя на дните в месеца Клетки ( intRow, 7) = intDays 'Преместване на следващия ред intRow = intRow + 1 intDays = 0 End If' Преместване на следващата дата StartDate = StartDate + 1 Loop Until StartDate> EndDate 'Получаване на сумата в клетките от последния ред (intRow, 6) = Клетки "Общо дни" (intRow, 7) = Application.Sum (Range ("G10: G" & intRow)) End Sub
Ако този блог ви е харесал, споделете го с приятелите си във Facebook. Също така можете да ни следвате в Twitter и Facebook.
Ще се радваме да чуем от вас, уведомете ни как можем да подобрим работата си и да я направим по -добра за вас. Пишете ни на имейл сайта