Domanda

Ho codificato uno script VBA in Excel che aggiunge nuovi dati in una scheda tecnica con informazioni precedenti. Prima di farlo, i nuovi dati vengono copiati in una scheda tecnica provvisoria. Per evitare duplicati, creo una colonna aggiuntiva e faccio un Vlookup di IDS. Se l'ID dai nuovi dati importati è già nella foglio dati con i vecchi dati, questa riga è contrassegnata come duplicata e verrà eliminata. Le "righe non duplicate" vengono quindi copiate nella scheda tecnica finale, in cui tutti i dati sono memorizzati.

In questo momento uso un riferimento a colonna (A: A) nel Vlookup e non so se forse questo è il motivo per cui lo script VBA ha bisogno di ogni giorno più risorse e tempo da eseguire. Quando ho codificato per la prima volta, ho fatto il test con non più di 4.000 righe nella scheda tecnica originale e 4.000 righe nei dati importati. La macro è stata fatta dopo 90 secondi. In questo momento, ha bisogno di più di 5 minuti e la scheda tecnica con i dati è di soli 40.000 righe di grandi dimensioni, mentre i nuovi dati sono sempre circa 4.000 righe.

Dovrei fare riferimento dinamicamente la gamma nel Vlookup anziché usare A: A o non importa in termini di velocità?

È stato utile?

Soluzione

Come menzionato nel mio commento, c'è certamente un modo per realizzare questa attività usando VBA, ma a volte la soluzione più semplice è la migliore.Consiglierei ad aggiungere tutti i record 40k ogni volta e utilizzando la funzione "Rimuovi duplicati" sotto il nastro "Dati" utilizzando la colonna che contiene il tuo valore univoco.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top