VBA or VB math function

G

gw.boswell

Is there a VB or VBA math function which will calculate the factors of
a number?
i.e. for 24 the factors could be 1,2,3,4,8,6,12

I need to find the lowest common denominator for a macro that I am
writing.

TIA

Garry
 
J

Jason Lepack

Excel already has the function GCD(num1, num2, num3, ...) which finds
the greatest common divisor of multiple numbers.

That should serve your purpose.

Cheers,
Jason Lepack
 
B

Bernie Deitrick

Garry,

Try the code below.

HTH,
Bernie
MS Excel MVP


Sub test()
Dim myFactors As Variant
Dim myNum As Long
Dim i As Integer

myNum = InputBox("What Number?")

myFactors = FactorFunction(myNum)

For i = LBound(myFactors) To UBound(myFactors)
MsgBox myFactors(i)
Next i

End Sub
Function FactorFunction(inVal As Long) As Variant
Dim myValue As Long
Dim myFA() As Long
Dim myCount As Integer
Dim i As Long

myCount = 1

ReDim Preserve myFA(1 To myCount)

For i = 2 To inVal / 2
If inVal Mod i = 0 Then
ReDim Preserve myFA(1 To myCount)
myFA(myCount) = i
myCount = myCount + 1
End If
Next i

FactorFunction = myFA
End Function
 
O

okrob

Lowest common denominator is usually 1 for any factors... Use Greatest
Common Divisor:
=GCD(1,2,3,4,8,6,12) etc...


Rob
 
G

gw.boswell

Bernie,

Thanks for the code. I will try it. Other experts also pointed me to
the GCD function which may/maynot work for my application but I thank
one and all for the help.

Garry
 
G

gw.boswell

Bernie,

Thanks for the code. I will try it. Other experts also pointed me to
the GCD function which may/maynot work for my application but I thank
one and all for the help.

Garry
 

Ask a Question

Want to reply to this thread or ask your own question?

You'll need to choose a username for the site, which only take a couple of moments. After that, you can post your question and our members will help you out.

Ask a Question

Top