VB dll, Excell and matlab

M

Mangesh Yadav

Hi,

Need some help regarding the following. I am making a VB DLL to convert some
of my excel macro code. The following is working fine where I set "myRng" as
an excel range, and then create a VB variable "myR" with a for statement and
then send it to matlab using the PutFullMatrix. Something like this

Sub MySub(myApp As Object)
Set myRng = myApp.Worksheets("Sheet1").Range("A1:A10")
myRows = myApp.Worksheets("Sheet1").Range("A1:A10").rows.Count
For i = 0 To myRows - 1
myR(i, 0) = myRng(i + 1)
Next i
Set Matlab = CreateObject("matlab.application")
Call Matlab.PutFullMatrix ("myR", "base", myR, myRImag)

Now my question is: Why do I have to use a for statement. That would make me
use as many for loops as there are input ranges. Can't I do something like:

Sub MySub(myApp As Object)
Set myRng = myApp.Worksheets("Sheet1").Range("A1:A10")

Set Matlab = CreateObject("matlab.application")
Call Matlab.PutFullMatrix ("myR", "base", myRng, myRImag)

where I send the variable "myRng" directly to matlab instead of explicitly
using a for loop to create a VB varaible.
 
K

keepITcool

Not familiar with matlab..

But I suspect you need to pass a Variant Array
not a range..

dim Matlab as object
dim xlsVal as variant
dim matVal as variant

Set Matlab = CreateObject("Matlab.Application")
xlsVal = Thisworkbook.worksheets("sheet1").Range("a1:a10").Value

'xlsVAL is now a 1 based 2 dimensional array.
'IF matlab can handle 1 based arrays you're ok..

call matlab.PutFullMatrix( "myR","base",xlsVal,matVal)


--
keepITcool
| www.XLsupport.com | keepITcool chello nl | amsterdam


Mangesh Yadav wrote :
 

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