Ergebnis einer VBA-Suche in Excel

Hallo

Ich habe es geschafft, eine Suche (über VBA) in einem EPDM-Tresor über das untenstehende Code-Snippet zu starten.

Meine Frage ist die folgende, ich möchte in dieser Suche die Variablen jedes Suchergebnisses abrufen, ich habe zum Beispiel eine Variable namens _NumNDL.

Ich denke, Sie müssen etwas wie GetVar oder eNumVar für eines der Ergebnisse verwenden, aber ich habe weder die Syntax noch die Lösung. Wenn jemand weiß, wie er mir helfen kann?

Sub FindFile()

Dimmen von eVault          als IEdmVault5
eSearch         als IEdmSearch5 dimmen
Dimmen Sie eResult         als IEdmSearchResult5
Dim FileCount       so lange wie möglich

Dateianzahl = 0

    "Verbindung zum Kofferraum
    Festlegen von eVault = Neues EdmVault5
    eVault.LoginAuto eVault.GetVaultNameFromPath("C:\_Clarity\"), 0
    
    "Beginn der Forschung
    Legen Sie eSearch = eVault.CreateSearch fest
    eSearch.AddVariable "_NDLNouv", "%1%"
    eSearch.Filename = "%NDL%"
    Legen Sie eResult = eSearch.GetFirstResult fest

    Lesen der Ergebnisse
    Obwohl nicht eResult nichts ist
        Dateianzahl = Dateianzahl + 1

        Zellen(Dateianzahl, 1) = eResult.Name
        Zellen(Dateianzahl, 2) = eResult.Pfad
        Zellen(Dateianzahl, 3) = eResult.StateName
        Set eResult = eSearch.GetNextResult
    Wend

Ende Sub

 

Hallo

In der Tat können Sie eine unendliche Anzahl von Ergebnissen erzielen! Sie können also keine Variable verwenden, sondern Sie müssen ein Array verwenden, was hier gemacht wird!

Die Zeile "  FileCount = FileCount + 1" wird verwendet, um zur nächsten Zeile zu gelangen.

Und Ihre Daten werden auf diese Weise in 3 Spalten gespeichert:

        Zellen(Dateianzahl, 1) = eResult.Name
        Zellen(Dateianzahl, 2) = eResult.Pfad
        Zellen(Dateianzahl, 3) = eResult.StateName

 

 

Vielen Dank für Ihre Antwort, aber Sie geben mir einen Code, den ich selbst als Antwort geschrieben habe...

Es tut mir leid, Ihnen zu widersprechen, ich habe mich vielleicht schlecht ausgedrückt, aber es gibt ePDM-Variablen, wenn Sie in den von mir bereitgestellten Code schauen, füge ich die Variable "_NDLnouv" zu meiner Suche hinzu.

Über eResult kann ich nicht alle Suchfelder abrufen: 

 

Ich möchte in der Lage sein, alle Felder abzurufen, die sich auf das Suchergebnis beziehen.

Hallo

Wenn ich mich nicht irre, (ich habe diese Art von Makro bereits gemacht), müssen Sie die Datei extrahieren, um den Inhalt der Variablen abzurufen, und dann die Extraktion abbrechen.

Sie müssen also eine ergänzende Behandlung hinzufügen.

Siehe angehängte Datei für die weitere Bearbeitung


macro_search.txt
1 „Gefällt mir“

Vielen Dank,

 

Nach dem Prinzip funktioniert es gut, suaf dass ich einen Fehler auf 424 habe:

Datei. LockFile-Ergebnis. ParentFolderID, 0.

Wenn ich die Datei "von Hand" extrahiere, funktioniert sie, aber ich kann sie nicht über Ihren Code extrahieren, ich vermute, mir fehlt die Lockfile-Funktion?

Ich habe vergessen zu ändern, sowohl in der lockfile- als auch in der undolockfile-Funktion müssen Sie result eingeben . ParentFolderID anstelle des Ergebnisses . ÜbergeordneteFolderID

In der Tat, ich habe es auch vermisst, ich hätte es selbst überprüfen können, auf jeden Fall funktioniert es niquel vielen Dank.

In meinem Geisteszustand finde ich es jedoch seltsam, dass wir gezwungen sind, die Datei zu extrahieren, da wir in der Suchanzeige die verschiedenen angezeigten Variablen, die Teil des Suchergebnisses sind, deutlich sehen können. Ich bin überrascht, dass man sie nicht lesen kann, ohne durch das Schloss oder Entsperren zu gehen.

Nichtsdestotrotz vielen Dank für Ihre Hilfe.

Es ist in der Tat seltsam, aber nach dem, was ich aus der API-Hilfe verstanden habe, hängt es mit der Tatsache zusammen, dass Variablen über Karten angezeigt werden können, wenn sie bearbeitbar sind. Tatsächlich müssen die Dateien extrahiert werden.