VBA Outlook: trova rapidamente la sottocartella

3

Ho la seguente struttura nelle mie cartelle pubbliche di Outlook.

-Public Folders
--1001_RandomProject
--1002_AnotherProject
--1003_Yetanotherproject
...

e così via, in pratica ci sono un paio di migliaia (!) sottocartelle corrispondenti a un progetto e precedute dal numero del progetto.

Ora sto provando a creare una macro che consenta a un utente di selezionare un numero di elementi di posta, inserire il numero di progetto attraverso una casella di input e quindi spostare questi elementi di posta automaticamente nella sottocartella corrispondente al numero di progetto.

Tutto questo funziona, ma nell'implementazione corrente eseguo il ciclo di tutte le sottocartelle della cartella pubblica e confrontando il numero di progetto inserito con i primi 4 caratteri del nome della cartella, per vedere se corrispondono, quindi spostati gli elementi di posta nella cartella.

Come puoi immaginare con migliaia di sottocartelle, questo tende ad andare molto lentamente. Quindi la mia domanda è: c'è un altro modo per selezionare la cartella corretta senza doverli scorrere in tutti (una sorta di utilizzo di una maschera come 'trovami una cartella che inizia con 1001 *).

    
posta Sam 16.06.2016 - 16:31
fonte

1 risposta

3

Potresti leggere i nomi delle cartelle disponibili solo una volta e memorizzare i loro nomi in un file locale. Quando si esegue nuovamente la macro, leggere il file in memoria e utilizzarlo per trovare rapidamente il nome completo della cartella per un determinato numero di progetto. Una volta che conosci il nome completo e il percorso della cartella, la navigazione verso l'oggetto cartella dovrebbe essere semplice (vedi qui per una soluzione generica, utilizzando Folders.item(foldername) ).

Quel file è una forma semplice di cache o index . Potrebbe essere necessario rinnovare la cache dopo un po 'o quando non è possibile trovare un numero di progetto o quando viene trovato un numero di progetto nella cache, ma non nella gerarchia delle cartelle. Migliorerà la velocità di ricerca quando l'elenco dei nomi delle cartelle non cambia troppo spesso (almeno, meno di quanto ci si aspetti che le ricerche avvengano).

    
risposta data 16.06.2016 - 21:26
fonte

Leggi altre domande sui tag