Topic
Copy a matrix into excel
Startseite ' Community ' Automation and VBA ' Copy a matrix into excel
- Dieses Thema hat 2 Antworten sowie 2 Teilnehmer und wurde zuletzt vor vor 9 Jahren, 4 Monaten von Peter Seitz aktualisiert.
-
AutorBeiträge
-
07.01.2016 um 15:28 Uhr #35218Peter SeitzTeilnehmer
Hello,
i have a 29×29 dimensional matrix which I want to include in an excel sheet.
For example a matrix build up within in a formula like this:[code]Dim Output = ? # 29 # 29 // Dim a 29×29 matrix
Output[0,28][0,28] = -1 // Fill all cells with -1[
I want this Output to be copied into an excel sheet. I used following code:
[code]
Option ExplicitConst sExcelSheet As String = “P:TestFile.xlsx”
Sub DataIntoExcel()
‘access data from FlexPro
Dim oFolder As Folder
Set oFolder = ActiveDatabase.RootFolder
Dim matrix
Set matrix = oFolder.Object(“Formel”, fpObjectTypeFormula).Value‘ open Excel sheet
Dim oExcel As Object
Set oExcel = CreateObject(“Excel.Application”)With oExcel
.Visible = True
.Workbooks.Open Filename:=sExcelSheet, ReadOnly:=False
With .Workbooks(1)
Dim oSheet As Object
Set oSheet = .Worksheets(1)oSheet.Range(“C3:AE31”) = matrix
End With
End With
Set oExcel = Nothing
End Sub[/code]The matrix is supposed to be placed starting at cell C3 or placed in the area from C3 to AE31. I keep getting runtime errors though.
Can someone tell me what i did wrong. Thanks in advance.
kind regards,
Peter07.01.2016 um 15:28 Uhr #35220Peter SeitzTeilnehmerHello,
i have a 29×29 dimensional matrix which I want to include in an excel sheet.
For example a matrix build up within in a formula like this:[code]Dim Output = ? # 29 # 29 // Dim a 29×29 matrix
Output[0,28][0,28] = -1 // Fill all cells with -1[ Output][/code]
I want this Output to be copied into an excel sheet. I used following code:
[code]
Option ExplicitConst sExcelSheet As String = “P:TestFile.xlsx”
Sub DataIntoExcel()
‘access data from FlexPro
Dim oFolder As Folder
Set oFolder = ActiveDatabase.RootFolder
Dim matrix
Set matrix = oFolder.Object(“Formel”, fpObjectTypeFormula).Value‘ open Excel sheet
Dim oExcel As Object
Set oExcel = CreateObject(“Excel.Application”)With oExcel
.Visible = True
.Workbooks.Open Filename:=sExcelSheet, ReadOnly:=False
With .Workbooks(1)
Dim oSheet As Object
Set oSheet = .Worksheets(1)oSheet.Range(“C3:AE31”) = matrix
End With
End With
Set oExcel = Nothing
End Sub[/code]The matrix is supposed to be placed starting at cell C3 or placed in the area from C3 to AE31. I keep getting runtime errors though.
Can someone tell me what i did wrong. Thanks in advance.
kind regards,
Peter08.01.2016 um 10:43 Uhr #35219Bernhard KantzTeilnehmerYour code should work if you assign the value of the formula evaluation instead of the value object itself to your matrix variable.
[code]
Dim fml As Formula
Set fml = ActiveDatabase.RootFolder(“Formel”, fpObjectTypeFormula)
fml.Update
Dim matrix
matrix = fml.Value
[/code]Note the update of the formula before using its value.
Hint: To exchange rows and columns use Application.WorksheetFunction.Transpose(matrix) in the assignment to the range.
-
AutorBeiträge
- Du musst angemeldet sein, um auf dieses Thema antworten zu können.