Potrebbe esserci un momento in cui devi verificare se esiste un foglio di lavoro, che hai creato o eliminato in una cartella di lavoro in una macro / codice VBA. Possiamo farlo facilmente usando una funzione / macro. Esistono diversi modi per verificare se esiste un foglio di lavoro .

Tratteremo i seguenti modi in questo articolo:

{vuoto} 1. Funzione definita dall’utente nota come UDF 2. Sottoprogramma tramite finestra di messaggio

Prima opzione: Funzione definita dall’utente

La seguente istantanea contiene alcuni nomi di fogli e verificheremo se i nomi dei fogli nella colonna A esistono.

img1

Per scoprire se esiste un foglio specifico, è necessario seguire i passaggi seguenti per avviare l’editor VB Fare clic sulla scheda Sviluppatore Dal gruppo Codice selezionare Visual Basic

img2

  • Copia il codice seguente nel modulo standard

Option Explicit

Function WorksheetExists(ByVal WorksheetName As String) As Boolean

Dim Sht As Worksheet

For Each Sht In ThisWorkbook.Worksheets

If Application.Proper(Sht.Name) = Application.Proper(WorksheetName) Then

WorksheetExists = True

Exit Function

End If

Next Sht

WorksheetExists = False

End Function

img3

Per controllare, useremo UDF nella cella B2 come = WorksheetExists (A2)

img4

  • Nell’immagine sopra, “MasterSheet” non esiste nella nostra cartella di lavoro di esempio; quindi, la formula ha dato risposta come False

Spiegazione del codice:

Questa funzione prende il valore per “WorksheetName” dalla macro che esegue altre attività. Se hai bisogno di cambiarlo secondo il tuo codice, puoi farlo.

For Each Sht In ThisWorkbook.Worksheets e Next Sht sono rispettivamente l’inizio e la fine del ciclo.

Quindi If Application.Proper (Sht.Name) = Application.Proper (WorksheetName) Then _ WorksheetExists = True_ Controlla se il nome del foglio corrisponde al nome del foglio passato dalla macro principale. In caso affermativo, WorksheetExists è True e possiamo uscire dalla funzione. In caso contrario, WorksheetExists = False viene restituito alla macro principale. Il ciclo va dal 1 ° foglio al successivo fino a quando tutti i fogli sono stati controllati.

SecondOption: routine secondaria tramite finestra di messaggio

Possiamo avere una normale subroutine che chiama una UDF e, se viene trovato il foglio specificato, la finestra di messaggio mostrerà “foglio esistente”; se non trovato, viene visualizzato msgbox, “foglio non trovato”.

Per verificare, copieremo il seguente codice nel modulo standard:

Function WorksheetExists2(WorksheetName As String, Optional wb As Workbook) As Boolean

If wb Is Nothing Then Set wb = ThisWorkbook

With wb

On Error Resume Next

WorksheetExists2 = (.Sheets(WorksheetName).Name = WorksheetName)

On Error GoTo 0

End With

End Function

Sub FindSheet()

If WorksheetExists2("Sheet1") Then

MsgBox "Sheet1 is in this workbook"

Else

MsgBox "Oops: Sheet does not exist"

End If

End Sub

img5

Dopo aver eseguito la macro “FindSheet”, otterremo la seguente finestra di messaggio se il foglio esiste:

img6

Se il foglio non esiste, verrà visualizzato il seguente messaggio:

img7

Allo stesso modo, possiamo avere un semplice ciclo IF che controlla se il foglio esiste ed esegue determinate azioni in seguito.

Sub test()

Dim ws As Worksheet

For Each ws In ThisWorkbook.Worksheets

If ws.Name <> "Main" Then

ws.Range("A1").Value = ws.Name

Else

ws.Range("A1").Value = "MAIN LOGIN PAGE"

End If

Next ws

End Sub

img8

Per testare la macro sopra, dobbiamo creare un nome di foglio “Principale”. Questa macro è molto semplice Passa attraverso ogni foglio di lavoro nella cartella di lavoro Quindi controlla se il nome del foglio di lavoro non è PRINCIPALE Se è PRINCIPALE, visualizza il testo, come “PAGINA DI ACCESSO PRINCIPALE” in A1 di quel foglio, altrimenti visualizza il nome di il foglio nella cella A1

img9

Questo è solo un altro modo per verificare se il foglio esiste. Se esiste, eseguire l’azione A, in caso contrario, l’azione B Conclusione: * Possiamo identificare se un foglio esiste o meno nella nostra cartella di lavoro; possiamo usare UDF o subroutine secondo la nostra convenienza.

image 48

Se i nostri blog ti sono piaciuti, condividilo con i tuoi amici su Facebook. E anche tu puoi seguirci su Twitter e Facebook.

_ Ci piacerebbe sentire la tua opinione, facci sapere come possiamo migliorare, integrare o innovare il nostro lavoro e renderlo migliore per te. Scrivici a [email protected]_