原先的回数,全是汉语数字,为此我先转换成了阿拉伯数字,遗憾的是阿拉伯数字100居然排在1和2之前!所以必须设置为3位数字才行!否则顺序是乱的。
以下是用VBA批量重命名的代码:
Dim FSO As New FileSystemObject Dim fd As Folder, fl As File Sub Test() On Error Resume Next For Each fd In FSO.GetFolder("E:\Office_VBA\历朝通俗演义").SubFolders For Each fl In fd.Files fl.Name = D2N(fl.Name) Debug.Print fl.Name Next fl Next fd End Sub Function C2N(Source As String) As String Const nine = "一二三四五六七八九" Dim temp As String Dim num As Integer If Source Like "自序*" Then temp = "第0回 " & Source C2N = temp Exit Function End If temp = Split(Source, "回")(0) temp = Split(temp, "第")(1) If InStr(temp, "百") > 0 Then num = 100 temp = Right(temp, Len(temp) - 2) End If If InStr(temp, "十") = 1 Then num = num + 10 temp = Right(temp, Len(temp) - 1) End If If InStr(temp, "十") > 1 Then num = num + 10 * InStr(nine, Left(temp, 1)) temp = Right(temp, Len(temp) - 2) End If If temp <> "" Then num = num + InStr(nine, Left(temp, 1)) End If C2N = "第" & num & "回" & Split(Source, "回")(1) End Function Function D2N(Source As String) As String Dim temp As String temp = Split(Source, "回")(0) temp = Split(temp, "第")(1) temp = Format(temp, "000") D2N = "第" & temp & "回" & Split(Source, "回")(1) End Function
下载:
下载后,必须解压缩,然后双击exe文件即可启动。
原文地址:https://www.cnblogs.com/ryueifu-VBA/p/9026663.html
时间: 2024-10-13 23:59:31