Wynik wyszukiwania w języku VBA w programie Excel

Witam

Udało mi się uruchomić wyszukiwanie (przez VBA) w skarbcu EPDM za pomocą poniższego fragmentu kodu.

Moje pytanie jest następujące, chciałbym pobrać w tym wyszukiwaniu, zmienne każdego wyniku wyszukiwania, mam na przykład zmienną o nazwie _NumNDL.

Domyślam się, że musisz użyć czegoś takiego jak GetVar lub eNumVar na jednym z wyników, ale nie mam składni ani rozwiązania. Czy ktoś wie jak mi pomóc?

Sub FindFile()

Przyciemnij eVault          jako IEdmVault5
Dim eSearch         As IEdmSearch5
Dim eResult         As IEdmSearchResult5
Dim FileCount       tak długo

Liczba plików = 0

    "Połączenie z bagażnikiem
    Ustaw eVault = Nowy EdmVault5
    eVault.LoginAuto eVault.GetVaultNameFromPath("C:\_Clarity\"), 0
    
    "Rozpoczęcie prac badawczych
    Ustaw eSearch = eVault.CreateSearch
    eSearch.AddVariable "_NDLNouv", "%1%"
    eSearch.Filename = "%NDL%"
    Ustaw eResult = eSearch.GetFirstResult

    Odczytywanie wyników
    Póki nie eResult to nic
        FileCount = Liczba plików + 1

        Cells(FileCount, 1) = eResult.Name
        Cells(FileCount, 2) = eResult.Path
        Cells(FileCount, 3) = eResult.StateName
        Ustaw eResult = eSearch.GetNextResult
    Wend

Koniec subwoofera

 

Witam

W rzeczywistości możesz mieć nieskończoną liczbę wyników! Nie możesz więc użyć zmiennej, ale musisz użyć tablicy, co jest tutaj zrobione!

Wiersz "  FileCount = FileCount + 1" służy do przejścia do następnego wiersza.

A Twoje dane są przechowywane w ten sposób w 3 kolumnach:

        Cells(FileCount, 1) = eResult.Name
        Cells(FileCount, 2) = eResult.Path
        Cells(FileCount, 3) = eResult.StateName

 

 

Dziękuję za odpowiedź, ale podajesz mi kod, który sam napisałem w odpowiedzi...

Przepraszam, że ci zaprzeczam, być może wyraziłem się źle, ale są zmienne ePDM, jeśli spojrzysz w dostarczony przeze mnie kod, dodaję zmienną "_NDLnouv" do mojego wyszukiwania.

Za pomocą eResult nie mogę pobrać wszystkich pól wyszukiwania: 

 

Chciałbym mieć możliwość pobrania wszystkich pól związanych z wynikiem wyszukiwania.

Witam

O ile się nie mylę (już robiłem tego rodzaju makro), musisz wyodrębnić plik, aby pobrać zawartość zmiennej, a następnie anulować ekstrakcję.

Musisz więc dodać leczenie uzupełniające.

Zobacz załączony plik do dalszego przetwarzania


macro_search.txt
1 polubienie

Wielkie dzięki,

 

Na zasadzie działa ładnie, suaf że mam błąd na 424 na:

plik. Wynik LockFile. Identyfikator folderu nadrzędnego, 0.

Jeśli rozpakuję plik "ręcznie", to działa, ale nie mogę go rozpakować za pomocą twojego kodu, chyba brakuje mi funkcji lockfile?

Zapomniałem zmienić, zarówno w funkcji lockfile, jak i undolockfile musisz umieścić  wynik. ParentFolderID zamiast  wyniku. Identyfikator folderu nadrzędnego (ParentFolderID)

Rzeczywiście, też mi to brakowało, mogłem to sam sprawdzić, w każdym razie działa niquel dziękuję bardzo.

Jednak w stanie umysłu uważam za dziwne, że jesteśmy zmuszeni do pójścia i wyodrębnienia pliku, ponieważ na ekranie wyszukiwania możemy wyraźnie zobaczyć różne wyświetlane zmienne, które są częścią wyniku wyszukiwania. Dziwię się, że nie możesz ich przeczytać bez przejścia przez blokadę lub odblokowanie.

Niemniej jednak dziękuję za pomoc.

To rzeczywiście dziwne, ale z tego, co zrozumiałem z pomocy API, jest to związane z faktem, że zmienne są widoczne za pomocą map, gdy można je edytować. W rzeczywistości pliki muszą zostać rozpakowane.