Looge VBA abil kuu päevalehed ilma nädalavahetuste ja pühadeta

Anonim

Selles artiklis loome makro, et luua leht iga nädalapäeva jaoks määratud aasta kindlaksmääratud kuu kohta, välja arvatud kõik puhkuste loendis määratud kuupäevad.

Enne makro käivitamist on vaja kolme sisendit. Peame lahtris J10 määrama kuu numbri, lahtris J11 aasta ja puhkuse kuupäevade loendi vahemikus B16: B26.

Pärast sisendväärtuste määramist klõpsake makro käivitamiseks nuppu Esita.

See makro lisab uue lehe iga kuu iga nädalapäeva kohta, välja arvatud puhkuste loendis määratud kuupäevad.

Loogiline seletus

Selle makro puhul oleme kasutanud funktsiooni DateSerial, et leida määratud kuu viimane kuupäev. Oleme kasutanud FOR Loopi loopimiseks kuu alguskuupäevast kuni kuu viimase kuupäevani. Oleme kasutanud funktsiooni Otsi, et leida, kas kasutatav kuupäev on määratud puhkuste loendis olemas.

Nädalapäeva funktsiooni kasutatakse koos If -lausega, et kontrollida, kas kuupäev on nädalapäev või nädalavahetus. Kui avaldus lisab uue lehe ainult siis, kui kuupäev on nädalapäev ja seda pole puhkuste loendis. Nagu ülaltoodud ekraanipildil näha, on leht 6th Detsembrit pole loodud, sest 6th Detsember on puhkuste nimekirjas.

Palun järgige koodi allpool

 Valik Explicit Sub MonthApply () 'Deklareerivad muutujad Dim DV Muutuv Kuupäev Dim RngLeia vahemik Dim MonthNo, YearNo Täisarvuna Dim StartDate, EndDate as Date' Ekraanivärskenduste keelamine Application.ScreenUpdating = Vale töölehtedega ("Main") 'Kuu ja aasta lahtrist J10 ja J11 lehelt "Põhi" = DateSerial (YearNo, MonthNo + 1, 0) 'Kõigi määratud kuu kuupäevade vaatamine DVariable = StartDate To EndDate' Leiab, kas kuupäev on märgitud puhkuseks Set RngFind = .Range ("B16: B26"). Leia ( DVariable) "Kontrollimine, kas kuupäev on puhkus, nädalavahetus või nädalapäev Aktiivse lehe ümbernimetamine ActiveSheet.Name = Formaat (muutuv, "pp.kk.yy") Lõpp kui järgmine DVmuutuv. Valige Lõpp W i rakendus. ScreenUpdating = True End Sub 

Kui teile see blogi meeldis, jagage seda oma sõpradega Facebookis. Lisaks saate meid jälgida Twitteris ja Facebookis.

Tahaksime sinust kuulda, andke meile teada, kuidas saaksime oma tööd paremaks muuta ja teie jaoks paremaks muuta. Kirjuta meile meilisaidile