Quote:
Originariamente inviato da icecube_HU
Ciao !
Quanto esponi mi lascia perplesso...
Tu non memorizzi in vettori VBA tutte le righe del file, come pensavo, ma le elabori direttamente dalle celle excel, quindi non puo' essere la tua procedura che alloca tutta quella memoria.
Non e' che i 200 Mb sono relativi all'occupazione di memoria complessivamente utilizzata dal programma Excel + i tuoi dati ???
E gia' che ci sei, perche non posti 2 o 3 righe di dati presenti nel file csv, come esempio...
Inoltre: avevi gia' provato a scrivere la routine senza l'accorgimento del Mid$ ? Ti dava problemi di tempi di elaborazione ??
|
rispondo in ordine alle tue domande
1) i 200mb sono escusivamente allocati da excel (tenevo d'occhio il task manager durante l'esecuzione della macro)
2) i dati presenti nella cella che viene concatenata sono semplicemente il nme di un file (esclusa l'estensione); questi file hanno nel nome una descrizione testuale + una progressiva: ho quindi, prima di effettuare il concatenamento, utilizzato solo la progressiva (numero di 5 cifre): il testo presente nelle caselle è quindi numero
all'inizio le caselle contengono 00001, poi 00002 ecc,...
dopo il concatenamento la casella sarò 00001:00002:00003 ecc...
3)all'inizio la routine era fatta con l'operatore &, cioè facevo
Codice:
.Cells(i - 1, colScenario).Value = .Cells(i - 1, colScenario).Value & .Cells(i, colScenario).
ciao