AGGIORNARE:
Dopo che tutti i dettagli sono stati riassunti e discussi, ho passato 2 ore giuste a controllare le opzioni, e questo aggiornamento è quello di punteggiare tutti i.
preparativi
Prima di tutto, ho eseguito un'installazione pulita di Office 2010 x86 sulla macchina virtuale Clean Win7 SP1 Ultimate x64 alimentata da VMWare (questa è la normale routine per le mie attività di test quotidiane, quindi ne ho distribuite molte).
Quindi, ho modificato solo le seguenti opzioni di Excel (cioè tutte le altre vengono lasciate così come sono dopo l'installazione):
Advanced > General > Ask to update automatic links controllato :

Trust Center > Trust Center Settings... > External Content > Enable All... (anche se quello relativo alle connessioni dati molto probabilmente non è importante per il caso):

presupposti
Ho preparato e inserito C:\una cartella di lavoro esattamente secondo i @Siddharth Routsuggerimenti nella sua risposta aggiornata (condivisa per comodità): https://www.dropbox.com/s/mv88vyc27eljqaq/Book1withLinkToBook2.xlsx Il libro collegato è stato quindi eliminato in modo che il collegamento nel libro condiviso il libro non è disponibile (di sicuro).
Apertura manuale
Il file condiviso sopra mostra all'apertura (con le opzioni di Excel sopra elencate) 2 avvisi - nell'ordine di apparizione:
AVVISO # 1

Dopo aver cliccato su ne Updateho presumibilmente un altro:
AVVISO # 2

Quindi, suppongo che il mio ambiente di test ora sia più o meno simile a OP) Fin qui tutto bene, finalmente andiamo a
Apertura VBA
Ora proverò tutte le opzioni possibili passo dopo passo per rendere l'immagine chiara. Condividerò solo le righe di codice rilevanti per semplicità (il file di esempio completo con il codice verrà condiviso alla fine).
1. Semplice Application.Workbooks.Open
Application.Workbooks.Open Filename:="C:\Book1withLinkToBook2.xlsx"
Nessuna sorpresa: questo produce ENTRAMBI gli avvisi, come per l'apertura manuale sopra.
2. Application.DisplayAlerts = False
Application.DisplayAlerts = False
Application.Workbooks.Open Filename:="C:\Book1withLinkToBook2.xlsx"
Application.DisplayAlerts = True
Questo codice finisce con l' AVVISO # 1 e una delle opzioni cliccate ( Update/ Don't Update) NON produce ulteriori avvisi, cioè Application.DisplayAlerts = Falsesopprime l' AVVISO # 2 .
3. Application.AskToUpdateLinks = False
Application.AskToUpdateLinks = False
Application.Workbooks.Open Filename:="C:\Book1withLinkToBook2.xlsx"
Application.AskToUpdateLinks = True
Al contrario DisplayAlerts, questo codice finisce solo con l' AVVISO # 2 , cioè Application.AskToUpdateLinks = Falsesopprime l' AVVISO # 1 .
4. Doppio Falso
Application.AskToUpdateLinks = False
Application.DisplayAlerts = False
Application.Workbooks.Open Filename:="C:\Book1withLinkToBook2.xlsx"
Application.DisplayAlerts = True
Application.AskToUpdateLinks = True
Apparentemente, questo codice finisce per sopprimere ENTRAMBE LE AVVERTENZE .
5. UpdateLinks: = False
Application.Workbooks.Open Filename:="C:\Book1withLinkToBook2.xlsx", UpdateLinks:=False
Infine, questa soluzione a 1 riga (originariamente proposta da @brettdj) funziona allo stesso modo di Double False: NESSUN AVVISO viene mostrato!
conclusioni
Ad eccezione di una buona pratica di test e di un caso risolto molto importante (potrei affrontare tali problemi ogni giorno mentre invio le mie cartelle di lavoro a terze parti, e ora sono preparato), altre 2 cose imparate:
- Le opzioni di Excel sono importanti, indipendentemente dalla versione, soprattutto quando si tratta di soluzioni VBA.
- Ogni problema ha una soluzione breve ed elegante, insieme a una non ovvia e complicata. Solo un'altra prova per questo!)
Grazie mille a tutti coloro che hanno contribuito alla soluzione, e in particolare a OP che ha sollevato la domanda. Spero che le mie indagini e le fasi di test accuratamente descritte siano state utili non solo per me)
Il file di esempio con gli esempi di codice sopra è condiviso (molte righe sono commentate deliberatamente): https://www.dropbox.com/s/9bwu6pn8fcogby7/NoWarningsOpen.xlsm
Risposta originale (testata per Excel 2007 con alcune opzioni):
Questo codice funziona bene per me: scorre TUTTI i file Excel specificati utilizzando i caratteri jolly in InputFolder:
Sub WorkbookOpening2007()
Dim InputFolder As String
Dim LoopFileNameExt As String
InputFolder = "D:\DOCUMENTS\" 'Trailing "\" is required!
LoopFileNameExt = Dir(InputFolder & "*.xls?")
Do While LoopFileNameExt <> ""
Application.DisplayAlerts = False
Application.Workbooks.Open (InputFolder & LoopFileNameExt)
Application.DisplayAlerts = True
LoopFileNameExt = Dir
Loop
End Sub
L'ho provato con libri con link esterni non disponibili - nessun avviso.
File di esempio: https://www.dropbox.com/s/9bwu6pn8fcogby7/NoWarningsOpen.xlsm