Excel, por favor ayuda, ¿cómo cambiar los nombres de archivos por lotes a través de VBA?
El código es el siguiente:
Haga clic en el botón Seleccionar carpeta para seleccionar una carpeta. Después de ingresar el nuevo nombre de archivo en la columna C, haga clic en el botón Cambiar nombre para cambiar el nombre por lotes.
1
2
Tres
Cuatro
Cinco
Seis p>
p>
Siete
Ocho
Nueve
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
p>32
33
34
35
36
37
38
39
40
41
Cuarenta y dos
43
Cuarenta y cuatro
45
46
47
48
Cuarenta y nueve
50
51
Cincuenta y dos
53
54
55
Cincuenta y seis
57
58
Opción explícita
Fso privado como objeto , Mypath como cadena
SubselectFolder()
Atenuar para
Llamar a la aplicación Clear
. Cuadro de diálogo de archivo (msoFileDialogFolderPicker)
. Título = "Seleccione una carpeta para cambiar el nombre de los archivos por lotes"
. Mostrar
Salir Sub
MyPath= si .SelectedItems.Count = 0. SelectedItems(1)amp;"\"
Terminó con...
Establecer Fso = CreateObject("Scripting. Objeto del sistema de archivos")
Establecer Fo = Fso .getfolder(Mypath)
Recursividad de llamada
Conector final
Sub obtiene el nombre del archivo (carpeta)
Dim Fi, El nombre del archivo es una cadena, r es un número entero
Para cada Fi en la carpeta. archivo
r = rango("A65536"). final (xlArriba). Línea + 1
Nombre de archivo = Fi. nombre
celda(r, 1) = carpeta. Caminos y caminos. "\"
Celdas(r, 2) = Fso.getbasename(nombre de archivo)
Celdas(r, 4) = " "& ampFso.
GetExtensionName(nombre de archivo)
r = r + 1
Luego
Finalizar conector
Sub-recursivo (carpeta)
Fuzzy Fi, Fo
Se llama para obtener el nombre del archivo (carpeta)
si la carpeta cuenta con subcarpetas & gt; cada Fo en Folder.subFolders
llama a recursión
entonces
terminará si...
Finalizar conector
Sub rename()
Dim i es un número entero, r es un número entero, Rng es un rango
r = range("A65536"). final (xlArriba). Fila
Para cada Rng en el rango (" C2:C " & r)
Si Rng = " " entonces MsgBox "¡Por favor, complete el nuevo nombre de archivo por completo!", 64, "Consejo": Salga de Sub
Luego
para el rango de i = 2 ("A65536"). final (xlArriba). fila
Nombra celda(i,1) celda(i,2) y celda(i,4) como celda(i,1) y celda(i,3) y amp celda(I, 4)
Luego
MsgBox "¡Modificación del nombre de archivo completada!", 64, "Preguntar"
Llamada clara
EndConnector
Subclear()
Anotar r como un número entero
r = range("A65536"). final (xlArriba). Fila
Si r = 1, salga del Sub
rango(" A2 :D " & amp; r). Borrar contenido
Finalizar adaptación