Reply
 
LinkBack Thread Tools Search this Thread Display Modes
  #1   Report Post  
Posted to microsoft.public.excel.programming
external usenet poster
 
Posts: 2
Default Converting VB arrays to IXRangeEnum

I'm trying to call this function:

Function XIRR(values As IXRangeEnum, dates As IXRangeEnum, [guess As Double = 0.100000001490116])

within VB (not VBA). I need to convert two vb arrays to IXRangeEnum and somehow pass them into this function.

Using this code such as:

Function getXIRR() As Double

Dim obj As OCATP
Dim arrDates(3) As Date
Dim arrAmount(3) As Double
arrDates(0) = #5/1/2000#
arrDates(1) = #6/1/2000#
arrDates(2) = #7/1/2000#
arrAmount(0) = -100
arrAmount(1) = 100
arrAmount(2) = 200
Set obj = New OCATP
getXIRR = obj.XIRR(arrAmount, arrDates)

End Function

  #2   Report Post  
Posted to microsoft.public.excel.programming
external usenet poster
 
Posts: 27,285
Default Converting VB arrays to IXRangeEnum

If you are using the built in function XIRR, it will either work with arrays
or it won't. If it won't, then you would have to write your array to a
range. In the case of XIRR, it does work with arrays, so you should need no
conversion - just pass in the arrays.


I am not sure what OCATP is intended to be, but this worked:

Sub Mytest()
Debug.Print getXIRR
End Sub

Function getXIRR() As Double

' Dim obj As OCATP
Dim arrDates(3) As Date
Dim arrAmount(3) As Double
arrDates(0) = #5/1/2000#
arrDates(1) = #6/1/2000#
arrDates(2) = #7/1/2000#
arrAmount(0) = -100
arrAmount(1) = 100
arrAmount(2) = 200
' Set obj = New OCATP
getXIRR = Application.Run("ATPVBAEN.XLA!XIRR", arrAmount, arrDates)

End Function

You would need to change the Application to a reference to the Excel
application and load the analysis toolpak VBA in the instance of the Excel
application (addins are not loaded automatically when you open Excel as an
Automation server).


The answer was: 1658.94447021484

--
Regards,
Tom Ogilvy

"damon.f" wrote in message
...
I'm trying to call this function:

Function XIRR(values As IXRangeEnum, dates As IXRangeEnum, [guess As

Double = 0.100000001490116])

within VB (not VBA). I need to convert two vb arrays to IXRangeEnum and

somehow pass them into this function.

Using this code such as:

Function getXIRR() As Double

Dim obj As OCATP
Dim arrDates(3) As Date
Dim arrAmount(3) As Double
arrDates(0) = #5/1/2000#
arrDates(1) = #6/1/2000#
arrDates(2) = #7/1/2000#
arrAmount(0) = -100
arrAmount(1) = 100
arrAmount(2) = 200
Set obj = New OCATP
getXIRR = obj.XIRR(arrAmount, arrDates)

End Function



  #3   Report Post  
Posted to microsoft.public.excel.programming
external usenet poster
 
Posts: 2
Default Converting VB arrays to IXRangeEnum

Thanks for your example but I was hopeing to do this without OLE automation. I've simply included the mscowcf.dll in my VB project and use the function directly. Can you suggest how this might be achieved

Thanks
Reply
Thread Tools Search this Thread
Search this Thread:

Advanced Search
Display Modes

Posting Rules

Smilies are On
[IMG] code is On
HTML code is Off
Trackbacks are On
Pingbacks are On
Refbacks are On


Similar Threads
Thread Thread Starter Forum Replies Last Post
Two arrays same? FARAZ QURESHI Excel Discussion (Misc queries) 4 April 23rd 09 12:22 AM
Converting a date to a text field w/o converting it to a julian da LynnMinn Excel Worksheet Functions 2 March 6th 08 03:43 PM
Use of arrays DKS Excel Worksheet Functions 1 November 30th 06 08:38 PM
arrays solo_razor[_44_] Excel Programming 2 December 15th 03 12:06 PM
arrays Dave B[_3_] Excel Programming 2 November 11th 03 03:32 AM


All times are GMT +1. The time now is 06:51 AM.

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Copyright ©2004-2024 ExcelBanter.
The comments are property of their posters.
 

About Us

"It's about Microsoft Excel"