FlexPro
HistoryBase
Engineering
Training
Downloads
FlexPro Support
Knowledge
Community
About us
References
Jobs
General Contact
List Of Retailers
FlexPro Support
EN
DE
FR
Placeholder
Products and Solutions
Support and Downloads
Company
Magazine
Contact Us
Language
MyWeisang

Account settings

Topic

filling X column with formula in VBA

Home page Community Automation and VBA filling X column with formula in VBA

Viewing 3 posts - 1 through 3 (of 3 total)
  • Author
    Posts
  • #35067

    Good morning,

    I am using a formula ( see vb code ) to fill the X column of a signal . The “.FillColumns” line in the code generate an error message “invalid procedure call or argument” .

    It only works If I replace the Step variable directly by a numerical value but I need to use a variable in the formula.
    How can I do ?

    Dim oSignal As DataSet
    Dim Step
    Step = 0.1
    Set oSignal = ActiveDatabase.RootFolder.Add(“Random”, fpObjectTypeDataSet)

    With oSignal
    .DataStructure = fpDataStructureSignal
    .DataType(fpDataComponentX) = fpDataTypeFloat32
    .DataType(fpDataComponentY) = fpDataTypeFloat32
    .NumberOfRows = NbPoints

    .FillColumns “(NumberOfValues(i), FloatingPoint32 1,FloatingPoint32 Step )”, fpDataComponentX

    .Value(fpDataComponentY) = DataY
    End With

    Best regards

    #35065

    Good morning,

    I am using a formula ( see vb code ) to fill the X column of a signal . The “.FillColumns” line in the code generate an error message “invalid procedure call or argument” .

    It only works If I replace the Step variable directly by a numerical value but I need to use a variable in the formula.
    How can I do ?

    Dim oSignal As DataSet
    Dim Step
    Step = 0.1
    Set oSignal = ActiveDatabase.RootFolder.Add(“Random”, fpObjectTypeDataSet)

    With oSignal
    .DataStructure = fpDataStructureSignal
    .DataType(fpDataComponentX) = fpDataTypeFloat32
    .DataType(fpDataComponentY) = fpDataTypeFloat32
    .NumberOfRows = NbPoints

    .FillColumns “(NumberOfValues(i), FloatingPoint32 1,FloatingPoint32 Step )”, fpDataComponentX

    .Value(fpDataComponentY) = DataY
    End With

    Best regards

    #35066
    Bernhard Kantz
    Participant

    The first argument of the [b]FillColumns[/b] method is a FPScript formula which will be evaluated to produce a data series or data matrix to be assigned to the component specified as the second argument. The variable [b]i[/b] is predefined and holds a data series of index values 0, 1, 2, 3 and so on.
    In your code you are using a second variable [b]Step[/b] which is decraded on the VBA level but not for the FPScript function. To solve your problem you may either exchange [b]Step[/b] by the literal constant [b]0.1[/b] or add the following code to the FPScript formula:


    Dim Step
    Step = 0.1
    (NumberOfValues(i), FloatingPoint32 1,FloatingPoint32 Step )

    Hint: If you switch on macro recording and the use the command “Fill column with values” you will see that FlexPro uses an FPScript with delarations as given above.

    support@weisang.com

Viewing 3 posts - 1 through 3 (of 3 total)
  • You must be logged in to reply to this topic.