Estrarre i nomi dei file in un foglio di lavoro (Microsoft Excel)
Carol ha una directory con circa 1.000 file con nomi come YR1905-LIC12345-Smith, Harry-Brown, Mary. Vorrebbe portare tutti questi nomi di file (non i file stessi) in un foglio di lavoro e separare i nomi sul trattino. Pertanto, il nome del file di esempio occuperebbe effettivamente quattro celle in una singola riga. Carol pensa che ci vorrà una macro per essere eseguita, ma non è sicura di come accedere ai nomi dei file in quella macro.
Ovviamente puoi usare una macro per farlo, ma non è necessario usare una macro. Puoi, invece, usare un vecchio trucco dell’era DOS per ottenere ciò di cui hai bisogno.
Per accedere al prompt dei comandi se stai utilizzando una versione successiva di Excel, digita semplicemente “prompt dei comandi” (senza virgolette) nella casella di ricerca accanto all’icona di Windows nella barra delle applicazioni. Se stai utilizzando una versione precedente di Excel, il prompt dei comandi è accessibile tramite Windows: Start | Tutti i programmi | Accessori | Prompt dei comandi. Al prompt dei comandi, naviga finché non ti trovi nella directory che contiene i file. Supponiamo, per questo esempio, che tu stia cercando di ottenere un elenco dei file in questa directory:
c:\Users\e07482\My Documents\rnp
Per navigare in quella directory, inserisci questo comando al prompt dei comandi:
chdir "\Users\e07482\My Documents\rnp"
È necessario utilizzare le virgolette intorno alla directory a causa dello spazio nel nome del percorso. Quindi, digita il seguente comando per vedere, sullo schermo, qual è l’elenco dei file:
dir /b /a-d
La parte “/ a-d” significa “non elencare le directory”. Se sei soddisfatto di ciò che vedi sullo schermo, puoi inviarlo al file utilizzando quanto segue:
dir /b /a-d > filelist.txt
Questo crea un file di testo (filelist.txt) che contiene un elenco di tutti i file all’interno della directory corrente. Ora, all’interno di Excel, puoi seguire questi passaggi:
-
Visualizza la finestra di dialogo Apri. (In Excel 2007, fare clic sul pulsante Office e quindi su Apri. In Excel 2010, fare clic sulla scheda File della barra multifunzione e quindi fare clic su Apri. In Excel 2013, fare clic sulla scheda File della barra multifunzione, fare clic su Apri, quindi Computer e infine Sfoglia. Nelle versioni successive di Excel, fare clic sulla scheda File della barra multifunzione e fare clic su Sfoglia.)
-
Utilizzando l’elenco a discesa Tipo di file nella parte inferiore della finestra di dialogo, indicare che si desidera aprire File di testo (.prn; .txt; * .csv).
-
Individua e seleziona il file filelist.txt che hai creato al prompt dei comandi.
-
Fare clic su Apri. Excel avvia l’Importazione guidata testo, visualizzando la finestra di dialogo Passaggio 1 di 3. (Vedi figura 1.)
-
Assicurati che l’opzione Delimitato sia selezionata, quindi fai clic su Avanti. Excel visualizza la finestra di dialogo Passaggio 2 di 3.
-
Assicurati di specificare un trattino come delimitatore. (Dovrai fare clic su Altro e quindi inserire un trattino come delimitatore.)
-
Fare clic su Fine. Il tuo file viene importato e spezzato ai trattini, proprio come volevi.
I passaggi precedenti sono abbastanza facili da eseguire, in particolare se è necessario ottenere l’elenco dei file in Excel solo una volta ogni tanto. Se hai bisogno di farlo più regolarmente, dovresti probabilmente cercare un modo per farlo usando una macro. La seguente macro funzionerà molto rapidamente:
Sub GetFileNames() Dim sPath As String Dim sFile As String Dim iRow As Integer Dim iCol As Integer Dim splitFile As Variant 'specify directory to use - must end in "\" sPath = "C:\" iRow = 0 sFile = Dir(sPath) Do While sFile <> "" iRow = iRow + 1 splitFile = Split(sFile, "-") For iCol = 0 To UBound(splitFile) Sheet1.Cells(iRow, iCol + 1) = splitFile(iCol) Next iCol sFile = Dir ' Get next filename Loop End Sub
Quando esegui la macro, assicurati che non ci sia nulla nel foglio di lavoro corrente. (Tutto ciò che è presente verrà sovrascritto). Inoltre, è necessario modificare il percorso della directory assegnato alla variabile sPath vicino all’inizio della macro.
_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 (11144) si applica a Microsoft Excel 2007, 2010, 2013, 2016, 2019 ed Excel in Office 365. Puoi trovare una versione di questo suggerimento per l’interfaccia del menu precedente di Excel qui: