Excel VBA MOD operátor
A VBA-ban a MOD megegyezik a matematika alkalmazásával, amikor egy számot elosztunk osztójával, és emlékeztetőt kapunk ebből a felosztásból, akkor ezt a függvényt arra használjuk, hogy megkapjuk a maradékot az osztásból, ez nem a VBA függvény mint operátor.
A MOD nem más, mint a MODULO egy matematikai művelet. Pontosan megegyezik az osztással, de az eredmény kissé eltér attól, ahol az osztás veszi az osztott összeget, de a MOD az osztás fennmaradó részét. Például: Ha elosztja 21-et 2-vel, akkor az eredmény 10,50 a MOD-vel az osztás fennmaradó része, azaz 1. (A 2. szám csak 20-at oszthat, nem 21-et, tehát a maradék 1).
A normál excelben ez egy függvény, de a VBA-ban nem függvény. Ez csak matematikai operátor. Ebben a cikkben részletesen megvizsgáljuk ezt az operátort.

Szintaxis
Csak emlékeztetőül: ez nem a szintaxis függvénye. Olvasónk megértése érdekében hadd fogalmazzam meg.
1. szám MOD 2. szám (osztó)
Az 1. szám nem más, mint mi az a szám, amelyet megpróbálunk felosztani.
A 2. szám ez az osztó, azaz az 1-es számot osztani fogjuk ezzel az osztóval.
MOD az 1. / 2. szám által megadott eredmény .
Hogyan kell használni a MOD-t a VBA-ban?
1. példa
A kód megírásához kövesse az alábbi lépéseket.
1. lépés: Hozzon létre egy makrónevet.
Kód:
Sub MOD_Example1 () End Sub
2. lépés: Határozza meg az egyik változót egészként .
Kód:
Sub MOD_Example1 () Dim i egész szám vége Sub
3. lépés: Most végezze el a számítást „i = 20 MOD 2” néven.
Mint az elején elmondtam, a MOD operátor, nem függvény. Tehát a MOD szót használtam, mint plusz (+) beírása.
Kód:
Sub MOD_Example1 () Dim i Egész számként i = 21 Mod 2 End Sub
4. lépés: Most rendelje hozzá az „I” értéket az üzenetmezőhöz.
Kód:
Sub MOD_Example1 () Dim i egész számként i = 21 Mod 2 MsgBox i End Sub
5. lépés: Futtassa a kód üzenet mezőben megjelenik az „I” értéke

2. példa
A VBA-ban szereplő Mod mindig egész számot ad vissza, azaz tizedesjegyek nélkül, ha a számot tizedesben adja meg. Nézze meg például az alábbi kódot.
Kód:
Sub MOD_Example2 () Dim i egész számként i = 26.25 Mod 3 MsgBox i End Sub
A 3. osztó el tudja osztani a 24-et, tehát a maradék itt 2,25, de a MOD operátor visszaadja az egész értéket, azaz 2-t, nem 2,25-et.

Most módosítom a számot 26,51-re, és meglátom a különbséget.
Kód:
Sub MOD_Example2 () Dim i egész számként i = 26.51 Mod 3 MsgBox i End Sub
Futtatom ezt a kódot, és megnézem, mi az eredmény.

Azta!!! Nulla a válasz. Azért kaptunk nullát, mert a VBA a számokat kerekíti, mint a bankárjaink, vagyis bármely 0,5-nél nagyobb tizedespontot felfelé kerekítünk a következő egész számra. Tehát ebben az esetben a 26,51-et 27-re kerekítik.
Mivel 3 oszthatja a 27-et 9-tel, nem kapunk maradék értékeket, így az i értéke nulla.
Most megadom az osztó értékét tizedes pontokban is.
Kód:
Sub MOD_Example2 () Dim i egész számként i = 26.51 Mod 3.51 MsgBox i End Sub
6. lépés: Futtassa ezt a kódot, és nézze meg, mi az eredmény.

3-at kaptunk válaszként, mert a 26,51-et 27-re, a 3,51-es osztó értékét pedig 4-re kerekítjük.
Tehát ha 27-et osztasz 4-re, a maradék 3.
Excel MOD funkció és VBA MOD operátor
1. lépés: Most nézze meg az excel és a VBA MOD operátor közötti különbséget. Nekem 54,24 az értékem, az osztó értéke 10.

2. lépés: Most, ha a MOD funkciót alkalmazom, az eredményt 4.25-ként kapom meg.

3. lépés: De ha ugyanazt a műveletet hajtja végre a VBA-val, akkor 4-et kapunk, mint a maradékot, nem pedig 4.25-öt.
Kód:
Sub MOD_Example2 () Dim i egész számként i = 54.25 Mod 10 MsgBox i End Sub
4. lépés: Futtassa ezt a kódot, és nézze meg, mi az eredmény.

Dolgok, amikre emlékezni kell
- Ez nem függvény, hanem számtani operátor.
- Ez felfelé kerekíti és tízes értékeket kerekít lefelé, ellentétben a munkalap funkcióban lévő MOD függvénnyel.