Mi chiedo se ci sia un guadagno in termini di prestazioni quando si utilizzano collegamenti esterni rispetto all'apertura di un foglio di calcolo e alla copia di celle (tramite VBA).Excel: l'utilizzo di collegamenti esterni può migliorare le prestazioni?
Immagino che Excel deve aprire il file lo stesso, ma quando ho test utilizzando il seguente codice, collegamenti esterni viene fuori più veloce:
Dim t As Double
Dim rng As Range
For Each rng In shtId.Range("A1:A5")
t = Now
ThisWorkbook.Names("rngID").RefersToRange = rng
ThisWorkbook.UpdateLink "H:\manualData.xlsx", xlExcelLinks
Debug.Print "link: " & Format(Now - t, "######.0000000")
t = Now
Workbooks.Open "H:\manualData.xlsx", readonly:=True
ActiveWorkbook.Close False
Debug.Print "open: " & Format(Now - t, "######.0000000")
Next
Results:
link: .0000116
open: .0000231
link: .0000116
open: .0000347
link: .0000000
open: .0000347
link: .0000000
open: .0000347
link: .0000000
open: .0000347
La cartella di lavoro ha un intervallo di celle con le formule di ricerca immesso su un campo ID. Queste formule hanno collegamenti esterni. Per testarlo, cambio l'ID e impone un aggiornamento. Per testare l'approccio aperto per i file, apro e chiudo il file sorgente.
Sto cercando di velocizzare un processo che sta avendo un problema a causa della bassa larghezza di banda sulla rete. Ho già esplorato varie opzioni e vorrei solo capire se questo è valido. Ho cercato su questo argomento e alcuni dicono che i collegamenti esterni potrebbero causare problemi di prestazioni, mentre alcuni dicono diversamente. Mi piacerebbe avere un'idea migliore del meccanismo che sta dietro i collegamenti esterni in modo da poter capire cosa aspettarmi quando implementato.
Qualche idea?
Buona domanda. Non lavoro molto con i link esterni, ma per me è logico che l'aggiornamento di un link esterno (ad esempio, l'accesso diretto al suo contenuto) sia più rapido dell'apertura del file, dell'accesso ai suoi contenuti e della chiusura del file. Ma ricordo anche alcuni casi in cui i collegamenti di aggiornamento sono più veloci quando entrambe le cartelle di lavoro sono aperte. Quindi, buona domanda, +1 per te, ansioso di vedere cosa ne pensano gli altri. –
Misurare nuovamente con (1) ScreenUpdating set false; e (2) dati sufficienti per guidare i tempi misurati> 2 o 3 secondi. Ci sono troppi confondimenti con misurazioni delle prestazioni inferiori a quelle, rendendole inutili per confronti significativi. –
Inoltre, francamente, considero i fogli di calcolo con collegamenti esterni come fogli di calcolo "spezzati". È solo una questione di tempo fino alla pubblicazione di risultati errati, possibilmente con conseguenze disastrose. Metti i tuoi dati in un database, dove può essere gestito correttamente, anziché all'interno di uno strumento analitico senza supporto per una corretta gestione dei dati. –