Microsoft Excel'de VBA kullanarak belirli bir dönemde ay günlerini listeleyin ve ekleyin

Anonim

Bu yazımızda, tanımlanan periyot arasındaki ayları ve o aydaki gün sayısını listelemek için bir makro oluşturacağız. Ayrıca tanımlanan dönem arasındaki toplam gün sayısını da gösterecektir.

Bir aydaki ayları ve gün sayısını listelemek için “DaysInPeriod” makrosu oluşturduk. “Gönder” butonu tıklanarak makro çalıştırılabilir.

Makroyu çalıştırmadan önce, başlangıç ​​ve bitiş tarihi için giriş sağlanmalıdır. Başlangıç ​​tarihi olarak “G6” hücresindeki değeri ve bitiş tarihi olarak “G7” hücresindeki değeri alır. Çıktı aşağıda “F9” hücresinde görüntülenecektir.

Gönder düğmesine tıklandığında, makro, F sütununda ayın adını ve G sütununda o aydaki gün sayısını görüntüler. Son satır, belirtilen dönem arasındaki toplam gün sayısını gösterir.

Mantıksal açıklama

Makroda başlangıç ​​tarihinden belirtilen bitiş tarihine kadar döngüye başlıyoruz. Döngü yaparken bir ayın son tarihini kontrol ediyoruz. Ayın son tarihi ile karşılaşılırsa F ve G sütunlarında ay adı ve o aya ait gün sayısı görüntülenir. Aynı şekilde bitiş tarihini de kontrol ederiz. Bitiş tarihi ile karşılaşıldığında son aya ait giriş ve o aya ait gün sayısı görüntülenir.

Lütfen kod için aşağıdan takip edin

 Seçenek Explicit Sub DaysInPeriod() Dim StartDate, EndDate As Date Dim intRow As Integer, intDays As Integer 'Önceki içeriği temizliyor Range("F10:G1048576").ClearContents 'Başlangıç ​​ve bitiş tarihi alınıyor StartDate = Range("G6") EndDate = Range("G7") 'Değişkenin başlangıç ​​satır numarasına sıfırlanması intRow = 10 'Başlangıç ​​tarihinden bitiş tarihine kadar ayları ve gün sayısını listeleme Do intDays = intDays + 1 'Ayın son tarihini veya StartDate'in ne zaman eşit olduğunu kontrol etme BitişTarihi Eğer (Month(StartDate) Month(StartDate + 1)) Veya StartDate = EndDate Sonra 'Ay adının eklenmesi Cells(intRow, 6) = Format(StartDate, "mmmm") 'Aya gün sayısı eklenmesi Hücreler( intRow, 7) = intDays 'Bir sonraki satıra geçiliyor intRow = intRow + 1 intDays = 0 End If 'Bir sonraki tarihe taşınıyor StartDate = StartDate + StartDate'e Kadar 1 Döngü > EndDate 'Son satırdaki toplamı alma Cells(intRow, 6) = "Toplam Gün" Cells(intRow, 7) = Application.Sum(Range("G10:G" & intRow)) End Sub 

Bu blogu beğendiyseniz, Facebook'ta arkadaşlarınızla paylaşın. Ayrıca bizi Twitter ve Facebook'ta da takip edebilirsiniz.

Sizden haber almayı çok isteriz, işimizi nasıl geliştirebileceğimizi ve sizin için nasıl daha iyi hale getirebileceğimizi bize bildirin. E-posta sitesinde bize yazın