Rinominare cartelle Windows
Hai un problema con Excel? 
Rinominare cartelle Windows
di Gigainrete (utente non iscritto) data: 19/09/2016 17:51:29
ciao a tutti,
da poco sto programmando in VBA con Excel2010.
mi sono scritto una serie di macro che importano dei dati e li elaborano da dei files.dat contenuti in folders con stessa struttura.
il mio problema è l'ordine alfanumerico.Spiego meglio.
Non volendo cambiare lo script a valle(importazione dati cartella per cartella) vorrei cambiare il nome delle cartelle stesse.
le mie cartelle sono del tipo:
Case_1_aggiornamento
Case_2_aggiornamento
.
.
.
Case_10_aggiornamento
e così via.
Excel si tira dentro i nomi delle cartelle in uno sheet dove mi scrivo i percorsi da aprire per leggere i file .dat e importarli(come una sorta di elenco di percorsi win su un foglio provvisorio che lavora nell'ombra)
Excel ordina questi indirizzi come Case_1_aggiornamento,Case_10_aggiornamento,Case_2_aggiornamento...etc.
io vorrei un ordine del tipo numerico:Case_1_aggiornamento,Case_2_aggiornamento,..........,Case_10_aggiornamento.
Avevo pensato a rinominare le cartelle da 1 a 9 con i valori 01.....09 così che bypasso il problema,ma non riesco a fare uno script.
Il mio elenco finale sarà Case_01_aggiornamento,Case_02_aggiornamento,..........,Case_10_aggiornamento.
Avete qualche idea?
grazie mille
Gianni
di patel data: 19/09/2016 19:35:32
quindi basta controllare se il numero ha una cifra sola ed aggiungere lo zero ?
se è così prova questa
Sub RenameAllSubFolder()
rootFolder = "F:Download" ' <<<<<<<<<<<< da cambiare
Set fso = CreateObject("Scripting.FileSystemObject")
Set ROOT_Fol = fso.GetFolder(rootFolder)
For Each Sub_Fol In ROOT_Fol.subfolders
Name1 = Sub_Fol.Name
p1 = InStr(Name1, "_")
p2 = InStrRev(Name1, "_")
If p2 - p1 = 2 Then
Name2 = Left(Name1, p1) & "0" & Right(Name1, Len(Name1) - p2 + 2)
Stop
Sub_Fol.Name = Name2
End If
Next
Set Su_Fol = Nothing
Set ROOT_Fol = Nothing
Set fso = Nothing
End Sub |
Vuoi Approfondire?