FlexPro
HistoryBase
Ingénierie
Formation
Téléchargements
Assistance FlexPro
Connaissance
Communauté
À propos de nous
Références
Emplois
Contact général
Liste des revendeurs
Assistance FlexPro
FR
DE
EN
Porte-plaquette
Produits et solutions
Support et téléchargements
Entreprise
Magazine
Contact
Langue
MyWeisang

Paramètres du compte.

Topic

Listenelement mit VBA abfragen

Page d'accueil ' Communauté ' Automation et VBA ' Interroger un élément de liste avec VBA

Voir les messages de 2 - 1 à 2 (sur un total de 2)
  • Auteur
    Messages
  • #35261
    Helmut Meßmer
    Participant

    Hallo,

    in VBA scheitere ich daran, die Elemente einer Liste abzuarbeiten.

    Mit der FPScript-Formel “textliste”

    Dim idx = ValuesAboveLevel(Integer32 (("" <> Kommentar) == ("Start" <> Kommentar)), 0.5, EVENT_INDEX) 
    Dim Liste = [Zyklus[idx], Kommentar[idx]] // Erstellen der Liste mit 2 Datenreihen.

    erzeuge ich einen Liste mit zwei Datenreihen.

    Die FPScript-Formel “Anzahl”

    NumberOfRows(textliste.[0])

    erzeugt einen Einzelwert mit der Länge dieser Liste.

    In VBA sieht die Abfrage der beiden Formeln dann so aus:

    Dim Anzahl As FlexPro.Formula
    Set Anzahl = oDiagram.ParentFolder.Object("Anzahl", fpObjectTypeFormula)
    
    Dim Text As FlexPro.Formula
    Set Text = oDiagram.ParentFolder.Object("textliste", fpObjectTypeFormula)
    
    MsgBox Anzahl.Value(0, 0)
    MsgBox Text.Value(0, 0)

    Die MsgBox für den Einzelwert funktioniert und zeigt was an, egal ob “fpDataComponentY” drin steht oder nicht. Für die Liste funktioniert das aber so natürlich nicht.

    Meine Frag ist nun: Wie kann ich einen Einzelwert der Liste abfragen?

    In FPScript wird das mit:

    textliste.[1][1]

    gemacht, um den zweiten Einzelwert der zweiten Datenreihe anzuzeigen.

    Dieser FPScript-Syntax funktioniert aber nicht in VBA.

    Meine Frage ist nun: Wie ist der korrekte Syntax, um diesen Einzelwert in VBA, z.B. in der MsgBox anzeigen zu lassen?

     

    Vielen Dank

     

    #35262
    Bernhard Kantz
    Participant

    Die Formel liefert als Wert eine Liste zurück. In dieser kann man mit dem Elementnamen oder eins-basierten Index ein Element referenzieren. In Ermangelung eines Cast-Operators in VBA bietet sich folgende Herangehensweise an:

    Dim Text As FlexPro.List
    Set Text = oDiagram.ParentFolder.Object("textliste", fpObjectTypeFormula).Value
    
    MsgBox "Die zweite Zeile im zweiten Element ist " & Text(2)(1)

    Man beachte den Listelementindex, dieser kann alternativ auch als Zeichenkette mit dem Elementnamen angegeben werden.

     

     

Voir les messages de 2 - 1 à 2 (sur un total de 2)
  • Vous devez être connecté pour répondre à ce sujet.