Home |
Search |
Today's Posts |
|
#1
![]()
Posted to microsoft.public.excel.programming
|
|||
|
|||
![]() The Excel formula MOD(436.15,1) returns the value 0.15. However the Mod function in VBA returns the value 0, as (quoting from online help) "Usually, the data type of result is a Byte, Byte variant, Integer, Integer variant, Long, or Variant containing a Long, regardless of whether or not result is a whole number." Can any kind soul indicate how I might achieve the result that the Excel formula gives? I am basically trying to get my code to split 436.15 into two elements, 436 and 15, so that I can print the two values to a text file using the appropriate decimal delimiter for any given country. Thanks in advance for any help. Mark Woolven |
#2
![]()
Posted to microsoft.public.excel.programming
|
|||
|
|||
![]()
You could try something like this:
Function GetDecimalPart(RealValue as Double) as Double Dim IntTemp as Integer 'Because it truncates, IntTemp will now store the Whole number part of RealValue IntTemp = RealValue 'Now subtract the whole number part of RealValue from RealValue, to get the Decimal part... GetDecimalPart = RealValue - IntTemp end function -----Original Message----- The Excel formula MOD(436.15,1) returns the value 0.15. However the Mod function in VBA returns the value 0, as (quoting from online help) "Usually, the data type of result is a Byte, Byte variant, Integer, Integer variant, Long, or Variant containing a Long, regardless of whether or not result is a whole number." Can any kind soul indicate how I might achieve the result that the Excel formula gives? I am basically trying to get my code to split 436.15 into two elements, 436 and 15, so that I can print the two values to a text file using the appropriate decimal delimiter for any given country. Thanks in advance for any help. Mark Woolven . |
#3
![]()
Posted to microsoft.public.excel.programming
|
|||
|
|||
![]()
One way:
Public Function Frac(ByVal inVal As Variant) As Variant Select Case VarType(inVal) Case vbSingle, vbDouble, vbCurrency, _ vbDate, vbInteger, vbLong Frac = inVal - Fix(inVal) Case Else Frac = CVErr(xlErrValue) End Select End Function 'Frac() In article , "Mark Woolven" wrote: The Excel formula MOD(436.15,1) returns the value 0.15. However the Mod function in VBA returns the value 0, as (quoting from online help) "Usually, the data type of result is a Byte, Byte variant, Integer, Integer variant, Long, or Variant containing a Long, regardless of whether or not result is a whole number." Can any kind soul indicate how I might achieve the result that the Excel formula gives? I am basically trying to get my code to split 436.15 into two elements, 436 and 15, so that I can print the two values to a text file using the appropriate decimal delimiter for any given country. Thanks in advance for any help. Mark Woolven |
Reply |
Thread Tools | Search this Thread |
Display Modes | |
|
|
![]() |
||||
Thread | Forum | |||
LINKEDRANGE function - a complement to the PULL function (for getting values from a closed workbook) | Excel Worksheet Functions | |||
Vezerid Modulus 11 | Excel Discussion (Misc queries) | |||
modulus 11 formula | Excel Worksheet Functions | |||
Emulate Index/Match combo function w/ VBA custom function | Excel Worksheet Functions | |||
User-Defined Function pre-empting Built-in Function? How to undo???? | Excel Programming |