原先的回数,全是汉语数字,为此我先转换成了阿拉伯数字,遗憾的是阿拉伯数字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文件即可启动。