Colección de citas famosas - Slogan de motivación - Excel, por favor ayuda, ¿cómo cambiar los nombres de archivos por lotes a través de VBA?

Excel, por favor ayuda, ¿cómo cambiar los nombres de archivos por lotes a través de VBA?

Algoritmo recursivo de VBA adjunto y extracción por lotes; modificar el nombre del archivo

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>

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