Come creare un nuovo foglio utilizzando il codice vba?
Una volta che inizi a imparare VBA, una delle cose più interessanti che puoi fare è scrivere il codice VBA per inserire un nuovo foglio di lavoro in una cartella di lavoro.
Beh, c’è già un tasto di scelta rapida per inserire un nuovo foglio di lavoro oppure puoi anche usare l’opzione normale, ma il vantaggio di usare il codice VBA è che puoi aggiungere più fogli di lavoro con un solo clic e puoi anche definire dove vuoi aggiungere Esso.
Per questo, è necessario utilizzare il metodo Sheets.Add e in questo articolo impareremo come utilizzarlo per aggiungere uno o più fogli di lavoro in una cartella di lavoro.
Metodo Sheets.Add
Sheets.Add ([Before], [After], [Count], [Type])
- Prima: per aggiungere un nuovo foglio prima di un foglio.
- Dopo: per aggiungere il nuovo foglio prima di un foglio.
- Conteggio: numero di fogli da aggiungere.
- Tipo: Tipo di foglio che desideri aggiungere ( LINK )
Scrivi il codice VBA per aggiungere un nuovo foglio a una cartella di lavoro
Apri l’editor di Visual Basic e segui questi passaggi.
- Innanzitutto, devi inserire il metodo Sheets.Add.
- Successivamente è necessario definire dove aggiungere il nuovo foglio (Prima o Dopo).
- La prossima cosa è inserire il numero di fogli di lavoro.
- In definitiva, il tipo di foglio.
Diversi modi per aggiungere nuovi fogli in una cartella di lavoro utilizzando il codice VBA
Di seguito sono riportati diversi modi per aggiungere un nuovo foglio a una cartella di lavoro:
1. Aggiungi un singolo foglio
Per aggiungere un singolo foglio, puoi utilizzare il codice seguente, dove non hai specificato alcun argomento.
Sub SheetAddExample1() ActiveWorkbook.Sheets.Add End Sub
Questo codice indica a Excel di aggiungere un foglio nella cartella di lavoro attiva, ma poiché non hai argomenti, utilizzerà le impostazioni predefinite e aggiungerà un foglio di lavoro (xlWorksheet) prima del foglio attivo.
Ecco un altro modo per scriverlo, vedere il codice seguente.
Sub SheetAddExample2() Sheets.Add End Sub
Poiché sei già nella cartella di lavoro attiva, puoi anche utilizzare il codice seguente. Fa la stessa cosa.
2. Aggiungi più fogli
Per aggiungere più fogli contemporaneamente, imposta semplicemente l’argomento COUNT con il numero di fogli che desideri aggiungere.
Sub AddSheets3() Sheets.Add Count:=5 End Sub
Ora il numero di fogli che imposti è 5, quindi quando esegui questo codice, aggiunge immediatamente i cinque nuovi fogli alla cartella di lavoro.
3. Aggiungi un foglio con un nome
Se desideri rinominare il foglio dopo averlo aggiunto, puoi utilizzare il seguente codice:
Sub AddNewSheetswithNameExample1() Sheets.Add.Name = "myNewSHeet" End Sub
Nel codice precedente, abbiamo utilizzato l’oggetto name ( LINK ) che ti aiuta a specificare il nome di un foglio.
4. Aggiungi un foglio con un nome da una cella
Puoi anche prendere il valore da utilizzare come nome del foglio da una cella.
Sub AddNewSheetswithNameExample2() Sheets.Add.Name = Range("A1") End Sub
Nel codice sopra, la cella A1 viene utilizzata per ottenere il nome del nuovo foglio.
5. Aggiungi un foglio dopo/prima di un foglio specifico
Poiché questi argomenti sono già presenti in Sheets.Add dove puoi specificare il foglio per aggiungere un nuovo foglio prima o dopo.
Sub AddSheetsExample5() Sheets.Add Before:=Worksheets("mySheet") Sheets.Add After:=Worksheets("mySheet") End Sub
Ora nel codice sopra hai due righe di codice che hai utilizzato prima e dopo un argomento nel metodo Sheet.Add. Pertanto, quando esegui questo codice, vengono aggiunti due fogli, uno prima e uno dopo “mySheet”.
6. Aggiungi un nuovo foglio all’inizio
Usando l’argomento prima di usare, puoi anche aggiungere un foglio all’inizio dei fogli che hai nella cartella di lavoro.
Quindi, in pratica, ciò che faremo è specificare il numero del foglio anziché il nome del foglio.
Sub AddSheetsExample6() Sheets.Add Before:=Sheets(1) End Sub
Nel codice precedente, hai utilizzato il numero del foglio (1) che indica a VBA di aggiungere il foglio prima del foglio che si trova nella prima posizione in tutti i fogli di lavoro. In questo modo aggiungerà sempre il nuovo foglio all’inizio.
7. Aggiungi un nuovo foglio alla fine (dopo l’ultimo foglio)
Per aggiungere un nuovo foglio alla fine, è necessario scrivere il codice in modo diverso. Quindi per questo devi sapere quanti fogli ci sono nella cartella di lavoro in modo da poter aggiungere un nuovo foglio alla fine.
Sub AddSheetsExample8() Sheets.Add After:=Sheets(Sheets.Count) End Sub
Nel codice precedente, Sheet.Count restituisce il numero di fogli presenti nella cartella di lavoro e, poiché hai impostato l’argomento after, aggiunge il nuovo foglio dopo l’ultimo foglio nella cartella di lavoro.
8. Aggiungi più fogli e utilizza nomi di intervallo
Il codice seguente conta le righe nell’intervallo A1:A7. Successivamente si ripete per aggiungere fogli in base al conteggio dell’intervallo e utilizza i valori dell’intervallo per denominare il foglio quando lo aggiunge.
Sub AddSheetsExample9() Dim sheets_count As Integer Dim sheet_name As String Dim i As Integer sheet_count = Range("A1:A7").Rows.Count For i = 1 To sheet_count sheet_name = Sheets("mySheet").Range("A1:A7").Cells(i, 1).Value Worksheets.Add().Name = sheet_name Next i End Sub
Ma con il codice sopra, è possibile che il nome del foglio che desideri aggiungere esista già o che tu abbia una cella vuota nell’intervallo dei nomi.
In questo caso è necessario scrivere un codice in grado di verificare se esiste già il foglio con lo stesso nome e se la cella da cui si vuole prendere il nome del foglio è vuota oppure no.
Se solo entrambe le condizioni sono soddisfatte, è necessario aggiungere un nuovo foglio. Vorrei dirlo in due passaggi:
Prima di tutto è necessario scrivere una funzione Excel definita dall’utente per verificare se esiste già un foglio con lo stesso nome oppure no.
Function SheetCheck(sheet_name As String) As Boolean Dim ws As Worksheet SheetCheck = False For Each ws In ThisWorkbook.Worksheets If ws.Name = sheet_name Then SheetCheck = True End If Next End Function
In secondo luogo è necessario scrivere del codice utilizzando questa funzione e questo codice deve anche verificare se la cella del nome è vuota o meno.
Sub AddMultipleSheet2() Dim sheets_count As Integer Dim sheet_name As String Dim i As Integer sheet_count = Range("A1:A7").Rows.Count For i = 1 To sheet_count sheet_name = Sheets("mySheet").Range("A1:A10").Cells(i, 1).Value If SheetCheck(sheet_name) = False And sheet_name <> "" Then Worksheets.Add().Name = sheet_name End If Next i End Sub
Ora nel codice sopra hai utilizzato l’istruzione VBA IF e in questa istruzione hai la funzione di controllo del foglio che controlla il nome del foglio e quindi hai una condizione per verificare se la cella del nome ha un valore vuoto.