Questo tutorial dimostrerà come ottenere e impostare il nome della cartella di lavoro in VBA.
Possiamo ottenere o impostare il nome della cartella di lavoro attiva in VBA o scorrere tutte le cartelle di lavoro aperte in Excel e ottenere o impostare il nome di ciascuna di esse utilizzando un ciclo VBA.
Ottieni nome cartella di lavoro
Per ottenere il nome della cartella di lavoro attiva, è necessario utilizzare la proprietà name dell'oggetto cartelle di lavoro.
12345 | Sub GetWorkbookName()Dim strWBName As StringstrWBName = ActiveWorkbook.NameMsgBox strWBNameFine sottotitolo |
Se dovessimo eseguire il codice sopra, vedremmo apparire una finestra di messaggio sullo schermo con il nome della cartella di lavoro attiva.
Per scorrere tutte le cartelle di lavoro attive e restituire i nomi delle cartelle di lavoro a Excel, possiamo eseguire il seguente codice:
1234567 | Sub GetWorkbookNames()Dim wb come cartella di lavoroPer ogni wb nelle cartelle di lavoroActiveCell = wb.NameActiveCell.Offset(1, 0).SelezionaProssimoFine sottotitolo |
Gli esempi sopra includeranno l'estensione del file (es. xlsx). Se non vuoi includere l'estensione, ci sono alcuni metodi che possiamo usare per ottenere solo il nome del file della cartella di lavoro.
Ottieni il nome della cartella di lavoro senza estensione
Possiamo usare le funzioni LEFT e INSTR per rimuovere qualsiasi carattere dopo il punto nel nome del file:
12345 | Sub GetWorkbookName()Dim strWBName As StringstrWBName = Left(ActiveWorkbook.Name, InStr(ActiveWorkbook.Name, ".") - 1)MsgBox strWBNameFine sottotitolo |
Possiamo usare le funzioni LEFT e LEN per rimuovere 5 caratteri dalla fine del nome del file:
12345 | Sub GetWorkbookName()Dim strWBName As StringstrWBName = Left(ActiveWorkbook.Name, Len(ActiveWorkbook.Name) - 55)MsgBox strWBNameFine sottotitolo |
Impostazione del nome della cartella di lavoro
Per impostare il nome di una cartella di lavoro in VBA, utilizziamo ancora la proprietà Name della cartella di lavoro, tuttavia non possiamo utilizzare questo metodo per modificare il nome della cartella di lavoro attiva. Ciò è dovuto al fatto che la cartella di lavoro attiva è aperta e si verificherà un errore di accesso ai file. Per ovviare a questo, possiamo salvare il file con un nuovo nome e quindi eliminare il vecchio file.
12345678910 | Public Sub SetWorkbookName()Dim strPath As StringDim strNewName As StringDim strOldName As StringstrOldName = ActiveWorkbook.NamestrNewName = InputBox ("Inserisci un nuovo nome per la cartella di lavoro")strPath = ActiveWorkbook.PathActiveWorkbook.SaveAs strPath & "/" & strNuovoNomeUccidi strPath & "/" & strOldNameFine sottotitolo |
Per rinominare una cartella di lavoro che non è aperta, possiamo usare il metodo Name.
123 | Public Sub RenameWorkbook()Nome "C:\Data\MyFile.xlsx" As "C:\Data\MyNewFile.xlsx"Fine sottotitolo |