VBA-arkipäivä | Vaiheittainen opas viikonpäivän toimintaan VBA: ssa

Excel VBA Weekday -toiminto

Viikkopäivä VBA: ssa on päivämäärä- ja aikatoiminto, jota käytetään tietyn päivämäärän viikonpäivän tunnistamiseen edellyttäen, että se on syötteenä, tämä funktio palauttaa kokonaisluvun arvon 1: stä 7: een, tähän toimintoon on valinnainen argumentti, joka on viikon ensimmäinen päivä, mutta jos emme anna viikon ensimmäistä päivää, toiminto olettaa sunnuntain oletusarvoisesti viikon ensimmäisenä päivänä.

Voimmeko kertoa viikonpäivän numeron katsomalla tiettyä päivämäärää? Kyllä, voimme sanoa kyseisen viikon päivänumeron viikon alkupäivän mukaan. Säännöllisissä laskentataulukko-funktioissa meillä on Excel-funktio nimeltä WEEKDAY kertomaan tietyn päivämäärän viikon numero. Myös VBA: ssa meillä on sama tehtävä löytää sama asia.

Mitä viikonpäivän toiminto tekee?

Weekday-funktio palauttaa annetun päivämäärän viikon numeron viikossa. Esimerkiksi, jos sinulla on päivämäärät 01. huhtikuuta - 7. huhtikuuta ja jos haluat tietää päivämäärän 5. huhtikuuta, jos viikon alkamispäivä on maanantaista, se on 5. päivä.

Tämän löytämiseksi meillä on sama toiminto “Weekday” sekä laskentataulukossa että VBA: ssa. Alla on funktion syntaksi.

Päivämäärä: Mille päivämäärälle yritämme löytää viikonpäivän. Tämän pitäisi olla oikea päivämäärä ja oikea muoto.

[Viikon ensimmäinen päivä]: Annetun päivämäärän viikonpäivän määrittämiseksi meidän on mainittava, mikä on viikon ensimmäinen päivä. Oletusarvoisesti VBA pitää maanantaina viikon alkamispäivää. Tämän lisäksi voimme toimittaa myös alla olevat päivät.

Esimerkkejä

Voit ladata tämän VBA WeekDay -toiminnon Excel-mallin täältä - VBA WeekDay -toiminnon Excel-malli

Esimerkki 1

Haluan aloittaa menettelyn ensin yksinkertaisella esimerkillä. Yritämme nyt löytää viikonpäivä päivämäärälle “10.-huhtikuu-2019”.

Vaihe 1: Määritä muuttuja merkkijonoksi

Koodi:

 Alaviikonpäivä_esimerkki1 () Himmennä merkkijonon lopussa Alim 

Vaihe 2: Määritä muuttujalle arvo

Määritä arvo muuttujalle “k” soveltamalla WEEKDAY-toimintoa.

Koodi:

 Alaviikonpäivä_esimerkki1 () Himmennä merkkijono k = Viikonpäivä (Lopeta alim 

Vaihe 3: Syötä päivämäärä toimintoon

Testattava päivämäärä on “10-huhtikuu-2019”, joten välitä päivämäärä “10-huhtikuu-2019”.

Koodi:

 Alaviikonpäivä_esimerkki1 () Himmennä merkkijono k = Viikkopäivä ("10.4.2019" loppu 

Vaihe 4: Näytä muuttujan arvo MsgBoxissa

Oletusarvoisesti viikon ensimmäinen päivä on “maanantai”, joten ohita tämä osa. Sulje kiinnike. Näytä seuraavalla rivillä muuttujan "k" arvo VBA-viestiruudussa.

Koodi:

 Alaviikonpäivä_esimerkki1 () Himmennä merkkijono k = Viikkopäivä ("10.4.2019") MsgBox k Loppu 

Ok, olemme valmiit.

Jos suoritamme koodin, tulokseksi saadaan "4", koska sunnuntaista alkaen annettu päivämäärä (10.-huhtikuuta-2019) kuuluu viikon 4. päivään.

Huomaa: Järjestelmieni viikon aloituspäivä on “sunnuntai”.

Vastaavasti, jos muutat viikon aloituspäivää, se vaihtelee. Alla on esimerkkiviiva samalle.

Koodi:

k = Weekday ("10-Apr-2019", vbMonday) 'Tämä palauttaa 3 k = Weekday ("10-Apr-2019", vbTuesday)' Tämä palauttaa 2 k = Weekday ("10-Apr-2019", vbWednesday) 'Tämä palauttaa 1 k = viikonpäivä ("10-huhtikuu-2019", vbThursday)' Tämä palauttaa 7 k = viikonpäivä ("10-huhtikuu-2019", vbFriday) "Tämä palauttaa 6 k = viikonpäivä (" 10-huhtikuu-2019 ", vbSaturday) 'Tämä palauttaa 5 k = viikonpäivä (" 10-Apr-2019 ", vbSunday)' Tämä palauttaa 4 

Esimerkki # 2 - saapuuko päivämäärä viikonloppuna vai ei

Oletetaan, että sinulla on alla olevan kaltainen päivämäärä ja haluat löytää seuraavan viikonlopun päivämäärän, voimme käyttää WEEKDAY-toimintoa tuloksiin pääsemiseksi.

Meidän on käytettävä WEEKDAY IF-ehtoa ja silmukoita tuloksen saavuttamiseksi. Olen kirjoittanut koodin, jotta voit siirtyä rivi riviltä saadaksesi logiikan.

Koodi:

 Alaviikonloppu_Päivämäärät () Dim k kokonaislukuna k = 2 - 9 Jos viikonpäivä (solut (k, 1). Arvo, vbMaanantai) = 1 Sitten solut (k, 2). Arvo = solut (k, 1) + 5 ElseIf viikonpäivä (Solut (k, 1). Arvo, vbMaanantai) = 2 Sitten solut (k, 2). Arvo = Solut (k, 1) + 4 ElseIf-viikonpäivä (Solut (k, 1). Arvo, vbMaanantai) = 3 Sitten solut (k, 2). arvo = solut (k, 1) + 3 ElseIf viikonpäivä (solut (k, 1). arvo, vbMaanantai) = 4 sitten solut (k, 2). arvo = solut (k, 1) + 2 ElseIf Weekday (solut (k, 1). Arvo, vbMonday) = 5 sitten solut (k, 2). Arvo = solut (k, 1) + 1 muut solut (k, 2). Arvo = "Tämä on itse asiassa viikonloppu Päivämäärä "Loppu, jos seuraava k Loppu ali 

Tämä johtaa alla oleviin tuloksiin.

Katso solut B6 ja B7, joista saimme tuloksen "Tämä on todella viikonlopun päivämäärä", koska päivämäärät "04-toukokuu-2019" ja "06-huhtikuu-2019" ovat itse asiassa viikonlopun päivämääriä, joten viikonlopun päivämäärää ei tarvitse näyttää viikonloppupäivinä. Oletuksena saamme tuloksen näin.


$config[zx-auto] not found$config[zx-overlay] not found