如何修改VBA代码仅提取文件名中的邮政编码部分
VBA代码修改方案
修改逻辑
原代码输出的是完整带后缀的文件名,要提取第一部分邮编,只需要对objFile.Name做两步处理:
- 先去掉文件的后缀扩展名,避免后缀对下划线拆分的干扰
- 使用
Split函数按下划线_拆分处理后的文件名,取拆分结果的第一个元素即为目标邮编
修改后完整代码
Option Explicit Sub GetFileDetails() Dim objFSO As Scripting.FileSystemObject Dim objFolder As Scripting.Folder Dim objFile As Scripting.File Dim nextRow As Long Dim fileNameWithoutExt As String Dim zipCode As String Set objFSO = CreateObject("Scripting.FileSystemObject") ' 引号内替换为你要遍历的目标文件夹完整路径 Set objFolder = objFSO.GetFolder("C:\替换为你的目标文件夹路径") nextRow = Cells(Rows.Count, 1).End(xlUp).Row + 1 For Each objFile In objFolder.Files ' 第一步:去掉文件扩展名 fileNameWithoutExt = objFSO.GetBaseName(objFile.Name) ' 第二步:按下划线拆分,取第一个元素为邮编 zipCode = Split(fileNameWithoutExt, "_")(0) ' 写入单元格 Cells(nextRow, 1) = zipCode nextRow = nextRow + 1 Next ' 释放对象 Set objFile = Nothing Set objFolder = Nothing Set objFSO = Nothing End Sub
额外说明
- 如果文件名不符合
ZipCode_Name_Date的命名规则(不存在下划线),代码会自动返回去掉后缀的完整文件名,不会报错 - 运行前需要先启用
Microsoft Scripting Runtime引用:VBA编辑器→工具→引用→勾选「Microsoft Scripting Runtime」即可
内容的提问来源于stack exchange,提问作者user17342326
相关产品推荐
相关产品推荐

