Verificare se una cartella di lavoro è già aperta (Microsoft Excel)
Le macro vengono spesso utilizzate per suddividere, suddividere in dadi e altrimenti elaborare le informazioni contenute nelle cartelle di lavoro. Ciò presume, ovviamente, che la cartella di lavoro che contiene le informazioni sia effettivamente aperta. Se non lo è, la tua macro dovrà ovviamente includere il codice per aprire effettivamente la cartella di lavoro necessaria.
L’apertura di una cartella di lavoro può davvero rallentare una macro; ci vuole tempo per accedere al disco e caricare il file. Pertanto, se la tua macro può verificare se una cartella di lavoro è aperta prima di passare attraverso il fastidio di provare effettivamente ad aprirla, potresti accelerare notevolmente le tue macro se la cartella di lavoro è già aperta.
Un modo molto flessibile per affrontare l’attività di controllo se una cartella di lavoro è aperta consiste nell’usare una funzione che esegue il controllo e quindi restituisce semplicemente un valore VERO o FALSO a seconda che la cartella di lavoro sia aperta. La seguente breve macro esegue questa breve operazione:
Function AlreadyOpen(sFname As String) As Boolean Dim wkb As Workbook On Error Resume Next Set wkb = Workbooks(sFname) AlreadyOpen = Not wkb Is Nothing Set wkb = Nothing End Function
Per utilizzare la funzione è sufficiente passargli il nome della cartella di lavoro che si desidera controllare, nel modo seguente:
sFilename = "MyFileName.xls" sPath = "C:\MyFolder\MySubFolder\" If AlreadyOpen(sFilename) Then 'Do not have to open Else Workbooks.Open sPath & sFilename End If
_Nota: _
Se desideri sapere come utilizzare le macro descritte in questa pagina (o in qualsiasi altra pagina dei siti ExcelTips), ho preparato una pagina speciale che include informazioni utili.
ExcelTips è la tua fonte di formazione economica su Microsoft Excel.
Questo suggerimento (10985) si applica a Microsoft Excel 2007, 2010, 2013, 2016, 2019 ed Excel in Office 365. Puoi trovare una versione di questo suggerimento per la vecchia interfaccia del menu di Excel qui: