原先的回数,全是汉语数字,为此我先转换成了阿拉伯数字,遗憾的是阿拉伯数字100居然排在1和2之前!所以必须设置为3位数字才行!否则顺序是乱的。
以下是用VBA批量重命名的代码:
Dim FSO As New FileSystemObjectDim fd As Folder, fl As FileSub 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 fdEnd SubFunction 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 FunctionFunction 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文件即可启动。
VB.Net制作-历朝通俗演义
原文地址:https://www.cnblogs.com/ryueifu-VBA/p/9026663.html