FlexPro
HistoryBase
Engineering
Training
Downloads
FlexPro-Support
Wissen
Community
Über Uns
Referenzen
Jobs
Allgemeiner Kontakt
Händlerverzeichnis
FlexPro-Support
DE
EN
FR
Placeholder
Produkte und Lösungen
Support und Downloads
Unternehmen
Magazin
Kontakt
Sprache
MyWeisang

Account Einstellungen

Topic

Copy a matrix into excel

Startseite ' Community ' Automation and VBA ' Copy a matrix into excel

Anzeigen von 3-Stellen - 1 bis 3 (von insgesamt 3)
  • Autor
    Beiträge
  • #35218
    Peter Seitz
    Teilnehmer

    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

    [ Output][/code]

    I want this Output to be copied into an excel sheet. I used following code:

    [code]
    Option Explicit

    Const 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,
    Peter

    #35220
    Peter Seitz
    Teilnehmer

    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

    [ Output][/code]

    I want this Output to be copied into an excel sheet. I used following code:

    [code]
    Option Explicit

    Const 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,
    Peter

    #35219
    Bernhard Kantz
    Teilnehmer

    Your 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.

Anzeigen von 3-Stellen - 1 bis 3 (von insgesamt 3)
  • Du musst angemeldet sein, um auf dieses Thema antworten zu können.