Я пытаюсь вызвать функции Matlab из VBA и написал простой пример кода, чтобы опробовать его.Код пытается вычислить определитель случайной матрицы 2x2.
Sub Code()
Dim DMat(1 To 2, 1 To 2) As Double, DetA As Object, Matlab As Object
Upper = 1000
Lower = 10
For i = 1 To 2
For j = 1 To 2
DMat(i, j) = ((Upper - Lower) * Rnd + Lower)
Sheet1.Cells(i + 1, j) = DMat(i, j)
Next
Next
Set Matlab = CreateObject("Matlab.Application")
On Error GoTo Errorfound
Matlab.PutWorkspaceData "A", "base", DMat
Matlab.Execute "Result = det(A);"
DetA = Matlab.GetVariable("Result", "base")
Errorfound:
With Err
MsgBox "Source: " & .Source & vbCrLf & "Desc: " & .Description, _
vbCritical, "Error " & CStr(.Number)
End With
Sheet1.Range("A6").Value = DetA
End Sub
Я получаю Ошибка времени выполнения 440 в строке, содержащей команду GetVariable
.Я пытался получить описание, но оно всегда пустое.
Я пытался использовать GetWorkspaceData
вместо GetVariable
, но результат тот же.
Куда я иду не так?