also:
to get the "fractional part" use
frac1= var1 - var1 \ 1
(the backslash is the operator for integer division)
--
keepITcool
|
www.XLsupport.com | keepITcool chello nl | amsterdam
keepITcool wrote :
vba's MOD operator works ENTIRELY different from Excel MOD function.
vba mod is intended for longs or integers and vba MOD ROUNDS the
arguments first...
8.1 mod 3.4 both are rounded 8 mod 3 gives 2
8.1 mod 3.5 both are rounded 8 mod 4 gives 0
you'll need to use
var1 * 100 mod 100
2.08 * 100 = 208 mod 100 gives 8
--
keepITcool
www.XLsupport.com | keepITcool chello nl | amsterdam
Terry Holmes wrote :
Could someone please help me with a silly little problem that is
really bugging me. I have just started learning Visual Basic and am
having difficulty with the MOD operator.
If I set up a formula using the MOD function in an Excel workbook:
=MOD(2.08, 1) * 100
I get the expected result 8 in the cell.
If I then try to use the MOD operator to get the same result in a
VBA procedu
Var1 = 2.08
Var2 = (Var1 Mod 1) * 100
MsgBox Var2
I get the result of 0 in Msgbox instead of the expected 8.
I have just done some more searching and found a reply to a recent
post on this newsgroup which mentioned briefly that floating point
numbers are rounded to integers and this causes mod 1 to return 0.
Is there any way of using the Mod operator to get the result I am
after or is it a lost cause?
Terry Holmes
PS. A second question €“ is it possible to change the names of
modules in the Project Explorer?
(I find that lists of names like module 1, module 2, module 3 etc.
in the tree under each workbook are not very informative to help you
remember where you wrote a piece of code and would like to change
them to something more meaningful. What looks like the obvious
solution - right-clicking on the module name in the tree - takes you
to a dialogue box that only lets you change the project name).