Office: Objekte in Collections-Container speichern

Helfe beim Thema Objekte in Collections-Container speichern in Microsoft Excel Hilfe um das Problem gemeinsam zu lösen; Hallo! Ich habe ein kleines Problem in VBA. Und zwar liefter eine SAP-RFC-Baustein eine Ergebnistabelle zurück, aus dieser sollen die Zeilen als... Dieses Thema im Forum "Microsoft Excel Hilfe" wurde erstellt von DerChris, 20. Januar 2007.

  1. Objekte in Collections-Container speichern


    Hallo!

    Ich habe ein kleines Problem in VBA. Und zwar liefter eine SAP-RFC-Baustein eine Ergebnistabelle zurück, aus dieser sollen die Zeilen als Objekte zu einem bestimmten Wert als Key in einem Containerdatentypen (Collection oder Scripting.Dictionary) abgelegt werden.

    Das Problem bei der Sache ist, dass VBA scheinbar nur eine Referenz auf die Objekte im Container ablegt, was dazu führt, dass alle Keys richtig gesetzt sind, ihnen als Wert allerdings immer das gleiche Objekt zugeordnet wird.

    Ich würde also gerne die Objekte beim "adden" in die Collection dereferenzieren, damit auch das tatsächliche Objekt in der Collections abgelegt wird.

    Hier der Code dazu:
    Code:
    Der Knackpunkt ist die Schleife am Ende der Prozedur, bzw. der Aufruf "all_accounts.add [...]".
    Hat hier jemand einen heissen Tipp für mich?

    LG
    Chris

    :)
     
    DerChris, 20. Januar 2007
    #1
  2. Hallo Chris,

    versuchen könntest Du es mit NEW.

    Aber nur als Vermutung.

    Dim all_accounts As New Collection
     
    Uwe Küstner, 22. Januar 2007
    #2
  3. Hallo Uwe,

    Sorry, mein Fehler. Ich hab beim Refactoring für diesen Post leider eine Zeile vergessen:
    Code:
    Trotzdem besten Dank für deinen Tipp.

    LG
    Chris


    Kleiner Nachtrag:
    Die Funktion kompliliert einwandfrei. Hier liegt kein syntaktisches Problem vor. Ich möchte/muss mit einen Weg finden, dass bei der Add-Methode der Collection nicht eine Referenz auf ein Objekt abgelegt wird, sondern das zur Laufzeit instanzierte Objekt an sich.
     
    DerChris, 22. Januar 2007
    #3
  4. Objekte in Collections-Container speichern

    Hallo Chris,

    was mir dazu noch einfällt, ist, dass der Key nur als String akzeptiert wird.

    all_accounts.Add F2.tables.Item("ACCOUNT_BALANCES"), CStr(looper.value("SAKNR"))
     
    Uwe Küstner, 22. Januar 2007
    #4
  5. Hallo Uwe!

    Nochmals besten Dank für deine Hilfe, aber ich glaube du hast meine Frage missverstanden. Der Zugriff auf die Items der Collection funktioniert wunderbar, auch wenn ich über deren Schlüssel ( looper.value("SAKNR") ) gehe. Das ist auch schon ein String, dem entsprechend brauche ich eigentlich nicht typecasten.
    Das Problem ist, dass F2.tables.Item("ACCOUNT_BALANCES") ein Objekt enthält. Wenn ich dieses nun der Collection hinzufüge, wird lediglich der Zeiger auf das Objekt in die Collection geschrieben. Das führt dazu, dass ich nachher eine Collection hab, die zwar so viele Items enthält, wie ich auch hinzugefügt habe & diese lassen sich auch über den Wert aus looper.value("SAKNR") ansprechen lassen. Alle Items der Collection präsentieren mir jedoch die gleichen Werte (/das gleiche Objekt) ... weil eben (oder scheinbar) immer nur eine Referenz auf den Speicherbereich, den F2.tables.Item("ACCOUNT_BALANCES") belegt, abgelegt wird.


    So ... ich hoffe das hat ein wenig Licht ins dukel gebracht.

    LG
    Chris
     
    DerChris, 22. Januar 2007
    #5
  6. Also wenn ich das richtig verstehe ist F2.tables.Item("ACCOUNT_BALANCES") im Prinzip ein Datenfeld vergleichbar mit einem Excel-Bereich?
    In dem Fall könntest du versuchen die Werte in einem Feld zu speichern und das in das Collectionobjekt einfügen.
    Beispiel 1 speichert die Verweise auf die Tabelle:
    Code:
    Beispiel 2 speichert die Werte aus der Tabelle:
    Code:
     
    Styrkar, 22. Januar 2007
    #6
Thema:

Objekte in Collections-Container speichern

Die Seite wird geladen...
  1. Objekte in Collections-Container speichern - Similar Threads - Objekte Collections Container

  2. Datei als OLE-Objekt importieren

    in Microsoft Excel Hilfe
    Datei als OLE-Objekt importieren: Hallo zusammen, leider funktioniert im nachfolgenden Code, um eine Word-Datei via Dateiauswahl/FilePicker auszuwählen und als OLE-Objekt zu speichern, der Teil des Importierens nicht. Fehler...
  3. Datei als OLE-Objekt via FilePicker auswählen und speichern

    in Microsoft Excel Hilfe
    Datei als OLE-Objekt via FilePicker auswählen und speichern: Hallo zusammen, Leider funktioniert der nachfolgende Code nicht, um eine Datei als OLE-Objekt via FilePicker auszuwählen und zu speichern. Die Dateiauswahl funktioniert soweit, nur leider das...
  4. Word-Datei als OLE-Objekt in XLSM importieren

    in Microsoft Excel Hilfe
    Word-Datei als OLE-Objekt in XLSM importieren: Hallo zusammen, ich habe bereits eine Word-Datei (mit Textmarken sowie Kopf-und Fußzeilen) als OLE-Objekt in meine XLSM-Datei importiert und kann diese auch exportieren. Wenn ich dann aber Daten...
  5. Shortcut für Objekte in den Hintergrund verschieben

    in Microsoft PowerPoint Hilfe
    Shortcut für Objekte in den Hintergrund verschieben: Hallo, ich muss bei vielen Folien Objekte (in dem Fall ein Foto) in den Hintergrund verschieben. Normale Vorgehensweise wäre Rechtsklick -> in den Hintergrund. Die Klickarbeit möchte ich mir mit...
  6. Excel VBA Laufzeitfehler 424 Objekt erforderlich

    in Microsoft Excel Hilfe
    Excel VBA Laufzeitfehler 424 Objekt erforderlich: Hallo zusammen, ich habe schon verschiedene Antworten zum Laufzeitfehler 424 gefunden, komme aber leider damit doch irgendwie nicht weiter (bin absoluter VBA-Neuling). Folgendes Makro habe ich...
  7. Alle Objekte markieren macht Probleme

    in Microsoft Word Hilfe
    Alle Objekte markieren macht Probleme: Office Prof. Plus 2019 Word Hallo, ich habe Organigramme (vielleicht etwas umständlich) kreiert, d.h. es sind nur Textfelder, Linien, eine Ellipse und zwei kleine, verschiebbare Grafiken auf der...
  8. Laufzeitfehler "424" Objekt erforderlich Selenium VBA

    in Microsoft Excel Hilfe
    Laufzeitfehler "424" Objekt erforderlich Selenium VBA: Hallo Zusammen, ich möchte mithilfe von Selenium in VBA eine Tabelle auf einer Webseite in eine Excel Tabelle kopieren. Allerdings bekomme ich den Fehler "Laufzeitfehler "424" Objekt...
  1. Diese Seite verwendet Cookies, um Inhalte zu personalisieren, diese deiner Erfahrung anzupassen und dich nach der Registrierung angemeldet zu halten.
    Auf dieser Website werden Cookies für die Zugriffsanalyse und Anzeigenmessung verwendet.
    Wenn du dich weiterhin auf dieser Seite aufhältst, akzeptierst du unseren Einsatz von Cookies.
    Information ausblenden