當前位置:成語大全網 - 書法字典 - Excel,請幫忙,如何通過VBA批量更改文件名?

Excel,請幫忙,如何通過VBA批量更改文件名?

附件VBA遞歸算法&批量提取;修改文件名

代碼如下:

單擊選擇文件夾按鈕選擇壹個文件夾。在C列輸入新文件名後,點擊重命名按鈕,批量重命名。

1

2

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

30

31

32

33

34

35

36

37

38

39

40

41

四十二個

43

四十四

45

46

47

48

四十九個

50

51

五十二個

53

54

55

五十六歲

57

58

選項顯式

私有Fso作為對象,Mypath作為字符串

子選擇文件夾()

Dim Fo

呼叫清除

應用程序。文件對話框(msoFileDialogFolderPicker)

。Title = "請為批量重命名文件選擇壹個文件夾"

。顯示

如果. SelectedItems.Count = 0,則退出Sub

我的路徑=。SelectedItems(1)amp;"\"

以…結尾

Set Fso = CreateObject("Scripting。文件系統對象”)

Set Fo = Fso.getfolder(Mypath)

調用遞歸

末端接頭

Sub獲取文件名(文件夾)

Dim Fi,文件名為字符串,r為整數

對於文件夾中的每個Fi。文件

r =範圍(“A65536”)。結束(xlUp)。行+ 1

文件名= Fi。名字

單元格(r,1) =文件夾。路徑與路徑。"\"

Cells(r,2) = Fso.getbasename(文件名)

Cells(r,4) = " "& ampFso。GetExtensionName(文件名)

r = r + 1

然後

末端接頭

子遞歸(文件夾)

模糊Fi,Fo

調用以獲取文件名(文件夾)

if folder . sub folders . count & gt;那麽0

對於Folder.subFolders中的每個Fo

調用遞歸

然後

如果…就會結束

末端接頭

子重命名()

Dim i為整數,r為整數,Rng為範圍

r =範圍(“A65536”)。結束(xlUp)。排

對於範圍內的每個Rng(" C2:C " & amp;r)

如果Rng = " "那麽MsgBox "請完整填寫新文件名!",64,“提示”:退出Sub

然後

對於i = 2的範圍(“A65536”)。結束(xlUp)。排

命名單元格(I,1)細胞(I,2)& amp;單元格(I,4)作為單元格(I,1)& amp;細胞(I,3)和amp細胞(I,4)

然後

MsgBox "文件名修改完成!",64,“提示”

呼叫清除

末端接頭

子清除()

將r標註為整數

r =範圍(“A65536”)。結束(xlUp)。排

如果r = 1,則退出Sub

範圍(" A2 :D " & amp;r)。清除內容

末端接頭