snb
Verenigingslid
- Lid geworden
- 12 jun 2008
- Berichten
- 19.728
Dag allen.
In VBA kun je met de modulo (Mod) niet het decimale deel van een getal krijgen.
Dat kan in Excel wel
Dan ligt de verleiding op de loer om in VBA de Excel-funktie te gebruiken.
Daar zijn in principe 2 methodes voor:
- het gebruik van Evaluate (in 2 gedaanten)
- het gebruik van de worksheetfunction (in 3 gedaanten; zie onder)
Nu bljkt dat de Excelfunktie MOD niet met de Worksheetfunction te kunnen worden opgeroepen.
Heeft iemand daarvoor een verklaring ?
Hieronder de mogelijkheden die ik heb onderzocht.
In VBA kun je met de modulo (Mod) niet het decimale deel van een getal krijgen.
Dat kan in Excel wel
PHP:
=MOD(12,345;1)
Dan ligt de verleiding op de loer om in VBA de Excel-funktie te gebruiken.
Daar zijn in principe 2 methodes voor:
- het gebruik van Evaluate (in 2 gedaanten)
- het gebruik van de worksheetfunction (in 3 gedaanten; zie onder)
Nu bljkt dat de Excelfunktie MOD niet met de Worksheetfunction te kunnen worden opgeroepen.
Heeft iemand daarvoor een verklaring ?
Hieronder de mogelijkheden die ik heb onderzocht.
Code:
Sub M_snb()
MsgBox 12.345 Mod 1 ' levert altijd 0
MsgBox [mod(12.345,1)] ' het decimale resultaat
MsgBox Evaluate("mod(12.345,1)") ' het decimale resultaat
MsgBox Application.Min(12.345, 1) ' vlekkelings
MsgBox Application.WorksheetFunction.mod(12.345, 1) ' funktioneert niet
MsgBox WorksheetFunction.mod(12.345, 1) ' funktioneert niet
MsgBox Application.mod(12.345, 1) ' funktioneert niet
End Sub