Come verificare se esiste un foglio utilizzando vba?
Se vuoi creare un foglio, cancellarlo, spostarlo o copiarlo, devi sapere se questo foglio esiste o meno.
Per scrivere codice per verificare se il foglio esiste o meno, è necessario un ciclo che attraversi ogni foglio della cartella di lavoro e corrisponda al nome fornito. Ma il punto è questo: puoi usare due cicli diversi per questo ( For Next e For Each ), e oggi li useremo entrambi.
In questo tutorial, esamineremo diversi modi per farlo. Quindi assicurati di avere la scheda Sviluppatore sulla barra multifunzione e apri l’ editor VBA per scrivere questo codice.
Controlla se esiste un foglio nella cartella di lavoro corrente
Con questo ciclo, puoi fare riferimento a tutti i fogli nella cartella di lavoro e scorrerli uno per uno per abbinare il nome del foglio al nome del foglio che desideri cercare.
Segui questi passi:
- Innanzitutto, dichiara una variabile da utilizzare per il foglio durante l’esecuzione del ciclo e per memorizzare il nome del foglio che desideri cercare.
- Successivamente, scrivi una riga di codice per una casella di input per inserire il nome del foglio che desideri cercare.
- Successivamente, inizia il ciclo con la parola chiave For Each. E usa la variabile per fare riferimento a ciascun foglio di lavoro nella cartella di lavoro.
- Da qui, devi scrivere un’istruzione IF THEN ELSE per abbinare il nome del foglio con il nome immesso nella casella di input, quindi visualizzare una finestra di messaggio se viene trovata la corrispondenza e uscire dalla procedura.
- Alla fine, una finestra di messaggio per avvisarti se non è stata trovata alcuna corrispondenza.
Link utili: Esegui una macro – Registratore di macro – Visual Basic Editor – Manuale delle macro personali
Codice completo:
Sub vba_check_sheet() Dim sht As Worksheet Dim shtName As String shtName = InputBox(Prompt:="Enter the sheet name", _ Title:="Search Sheet") For Each sht In ThisWorkbook.Worksheets If sht.Name = shtName Then MsgBox "Yes! " & shtName & " is there in the workbook." Exit Sub End If Next sht MsgBox "No! " & shtName & "is not there in the workbook." End Sub
Lascia che ti spieghi come funziona: Quando esegui questo codice, apparirà un messaggio in cui dovrai inserire il nome del foglio che vuoi cercare.
Successivamente, esamina ciascun foglio per abbinare il nome al nome immesso e, se il nome corrisponde a un foglio, mostra un messaggio e un altro messaggio se non c’è corrispondenza.
Ecco un altro codice per verificare se un foglio esiste o meno.
Sub vba_check_sheet() Dim sht As Worksheet Dim shtName As String Dim i As Long i = Sheets.Count shtName = InputBox(Prompt:="Enter the sheet name", _ Title:="Search Sheet") For i = 1 To i If Sheets(i).Name = shtName Then MsgBox "Yes! " & shtName & " is there in the workbook." Exit Sub End If Next i MsgBox "No! " & shtName & " is not there in the workbook." End Sub
Questo codice utilizza il ciclo FOR NEXT e utilizza il numero totale di fogli nella cartella di lavoro e, in base a ciò, scorre ogni foglio che corrisponde al nome con il nome immesso.
Controlla se il foglio esiste nella cartella di lavoro chiusa
Nel codice seguente è presente un ciclo che cerca il nome del foglio in una cartella di lavoro chiusa. Per fare riferimento al file, abbiamo utilizzato l’indirizzo del file.
Sub vba_check_sheet() Dim wb As Workbook Dim sht As Worksheet Dim shtName As String shtName = InputBox(Prompt:="Enter the sheet name", _ Title:="Search Sheet") Application.ScreenUpdating = False Set wb = Workbooks.Open _ ("C:UsersDellDesktopsample-file.xlsx") For Each sht In wb.Worksheets If sht.Name = shtName Then wb.Close SaveChanges:=True MsgBox "Yes! " & shtName & " is there in the workbook." _ , vbInformation, "Found" Exit Sub End If Next sht Application.ScreenUpdating = False MsgBox "No! " & shtName _ & " is not there in the workbook.", _ vbCritical, "Not Found" End Sub
Quando esegui questa macro, si apre il file sul retro quando hai disabilitato l’aggiornamento dello schermo e, una volta esaminati tutti i fogli, hai il codice per abilitare l’aggiornamento dello schermo. ‘schermo.
Nota: come puoi vedere, nell’indirizzo della posizione del file abbiamo l’estensione del file, il che significa che devi avere l’estensione del file corretta per fare riferimento ad esso.