ExcelHome技术论坛

 找回密码
 免费注册

QQ登录

只需一步,快速开始

快捷登录

搜索
EH技术汇-专业的职场技能充电站 妙哉!函数段子手趣味讲函数 Excel服务器-会Excel,做管理系统 效率神器,一键搞定繁琐工作
HR薪酬管理数字化实战 Excel 2021函数公式学习大典 Excel数据透视表实战秘技 打造核心竞争力的职场宝典
让更多数据处理,一键完成 数据工作者的案头书 免费直播课集锦 ExcelHome出品 - VBA代码宝免费下载
用ChatGPT与VBA一键搞定Excel WPS表格从入门到精通 Excel VBA经典代码实践指南
查看: 3211|回复: 19

[求助] 求助 excel 批量重命名

[复制链接]

TA的精华主题

TA的得分主题

发表于 2021-6-17 14:27 | 显示全部楼层 |阅读模式
[广告] Excel易用宝 - 提升Excel的操作效率 · Excel / WPS表格插件       ★免费下载 ★       ★ 使用帮助
多个文件夹内含有恢复过来的excel文件,命名为系统命名,如file001,file002等序列文件,想通过vba进行重命名。
1,以对话框的方式打开需重命名的文件夹。
2,文件以第一张工作表名称,+第一张工作表A4单元格的值命名。
3,如有重复文件,则在文件名称后,加上序号。如附件里file012命名为“岗位聘任03
谢谢各位老师的真挚帮助!!!

待命名.rar

1.19 MB, 下载次数: 22

TA的精华主题

TA的得分主题

发表于 2021-6-17 15:04 | 显示全部楼层
[广告] VBA代码宝 - VBA编程加强工具 · VBA代码随查随用  · 内置多项VBA编程加强工具       ★ 免费下载 ★      ★使用手册
表达目的不明确,比如file003文件,是命名为附件1单位?file005,中的第一张表(附件1)还被合并单元格了,命名还附件1单位???

TA的精华主题

TA的得分主题

 楼主| 发表于 2021-6-17 15:30 | 显示全部楼层
[广告] Excel易用宝 - 提升Excel的操作效率 · Excel / WPS表格插件       ★免费下载 ★       ★ 使用帮助
daxushen 发表于 2021-6-17 15:04
表达目的不明确,比如file003文件,是命名为附件1单位?file005,中的第一张表(附件1)还被合并单元格了, ...

A4单元格值为空时,忽略。就命名为附件1+序号,绝大多数表格为file012样式,我只是抽出几张表做个例子。
如老师能帮忙做到,之后我可以根据您的答案适当修改,再对file003,file005类文件进行再改名。谢谢!!!

TA的精华主题

TA的得分主题

 楼主| 发表于 2021-6-17 15:32 | 显示全部楼层
多数表格是这个样式 的,A4单元格为空,合并,取不到值则忽略
捕获.JPG

TA的精华主题

TA的得分主题

发表于 2021-6-17 15:37 | 显示全部楼层
[广告] Excel易用宝 - 提升Excel的操作效率 · Excel / WPS表格插件       ★免费下载 ★       ★ 使用帮助
350977106 发表于 2021-6-17 15:32
多数表格是这个样式 的,A4单元格为空,合并,取不到值则忽略

像file005那种文件直接舍弃?

TA的精华主题

TA的得分主题

 楼主| 发表于 2021-6-17 15:46 | 显示全部楼层
daxushen 发表于 2021-6-17 15:37
像file005那种文件直接舍弃?

也可以,谢谢!!!

TA的精华主题

TA的得分主题

发表于 2021-6-17 18:35 | 显示全部楼层
[广告] VBA代码宝 - VBA编程加强工具 · VBA代码随查随用  · 内置多项VBA编程加强工具       ★ 免费下载 ★      ★使用手册
https://mail.qq.com/cgi-bin/ftnE ... d&code=f4386316


可以下载使用,仅限于你这类型的Excel文档,使用前请备份,以免出错。

TA的精华主题

TA的得分主题

 楼主| 发表于 2021-6-18 09:52 | 显示全部楼层
[广告] Excel易用宝 - 提升Excel的操作效率 · Excel / WPS表格插件       ★免费下载 ★       ★ 使用帮助
daxushen 发表于 2021-6-17 18:35
https://mail.qq.com/cgi-bin/ftnExs_download?k=243433386e0d5cc9cdbb66bc103303195002500f500000024b0500 ...

谢谢老师的帮助,但我电脑使用的是32系统,软件打不开。老师能否提供一下源码,不甚感激!!!
或者帮忙把下面一段代码给改良一下。这段代码是我从网上搜的,做了一些改变,中间部分能达到要求。
老师能否把 1 ,Const PathName = "e:\ssx\Excel"红字部分改成对话框方式(像打开我和文档一样),2 ,增加重复文件判断,Timer 改成序号形式。
谢谢!!!

'如何操作让工作薄和本工作薄中第一个工作表名称一致
Sub Renametest()
On Error Resume Next
Const PathName = "e:\ssx\Excel" '此处更改为实际文件夹路径
Dim WorkPath As Object
Dim Fso As Object
Dim xlFile As Object
Dim WB As Workbook
Dim ShName As String
Dim mycell As String
Dim ExtName As String
Dim n As Long
Set Fso = CreateObject("scripting.filesystemobject")
Set WorkPath = Fso.GetFolder(PathName)
For Each xlFile In WorkPath.Files
If UCase(Right(xlFile.Name, 3)) = "XLS" Or UCase(Right(xlFile.Name, 4)) = "XLSX" _
Or UCase(Right(xlFile.Name, 4)) = "XLSM" Then
Set WB = Workbooks.Open(PathName & "\" & xlFile.Name)
ShName = WB.Sheets(1).Name
mycell = WB.Sheets(1).Cells(4, 1).Value
ShName = ShName & mycell & Timer  '工作簿名称为工作表1名称+工作表1单元格(4,1)名称+时间

WB.Close
If UCase(Right(xlFile.Name, 3)) = "XLS" Then
ExtName = ".xls"
ElseIf UCase(Right(xlFile.Name, 4)) = "XLSX" Then
ExtName = ".xlsx"
ElseIf UCase(Right(xlFile.Name, 4)) = "XLSM" Then
ExtName = ".xlsm"
End If
xlFile.Name = ShName & ExtName

End If
Next
End Sub

TA的精华主题

TA的得分主题

 楼主| 发表于 2021-6-18 10:57 | 显示全部楼层
谢谢老师的诚挚帮助!!!但我是32位系统,软件提示打不开。
老师能否帮我把下面一段代码修改一下,以完全达到我的要求。
1、指定文件夹改成对话框形式
2、对重复文件进行判断,增加序号,而不是采用Timer方式,虽然能对所有文件重命名,但文件名太长。
3,因为是恢复的文件,有的文件能重命名,但打不开,或是乱码,能不能用代码将这些文件命名时标记出来
网上搜的代码,我已经改动了一部分
'如何操作让工作薄和本工作薄中第一个工作表名称一致
Sub Renametest()
On Error Resume Next
Const PathName = "e:\ssx\Excel" '此处更改为实际文件夹路径
Dim WorkPath As Object
Dim Fso As Object
Dim xlFile As Object
Dim WB As Workbook
Dim ShName As String
Dim mycell As String
Dim ExtName As String
Set Fso = CreateObject("scripting.filesystemobject")
Set WorkPath = Fso.GetFolder(PathName)
For Each xlFile In WorkPath.Files
If UCase(Right(xlFile.Name, 3)) = "XLS" Or UCase(Right(xlFile.Name, 4)) = "XLSX" _
Or UCase(Right(xlFile.Name, 4)) = "XLSM" Then
Set WB = Workbooks.Open(PathName & "\" & xlFile.Name)
ShName = WB.Sheets(1).Name
mycell = WB.Sheets(1).Cells(4, 1).Value
ShName = ShName & mycell & Timer  '工作簿名称为工作表1名称+工作表1单元格(4,1)名称+时间

WB.Close
If UCase(Right(xlFile.Name, 3)) = "XLS" Then
ExtName = ".xls"
ElseIf UCase(Right(xlFile.Name, 4)) = "XLSX" Then
ExtName = ".xlsx"
ElseIf UCase(Right(xlFile.Name, 4)) = "XLSM" Then
ExtName = ".xlsm"
End If
xlFile.Name = ShName & ExtName

End If
Next
End Sub

老师帮看一下,谢谢!!!

TA的精华主题

TA的得分主题

发表于 2021-6-19 10:52 | 显示全部楼层
[广告] Excel易用宝 - 提升Excel的操作效率 · Excel / WPS表格插件       ★免费下载 ★       ★ 使用帮助
350977106 发表于 2021-6-18 09:52
谢谢老师的帮助,但我电脑使用的是32系统,软件打不开。老师能否提供一下源码,不甚感激!!!
或者帮忙 ...

我那是Python写的,VBA目前不太熟悉,正在学习中。
您需要登录后才可以回帖 登录 | 免费注册

本版积分规则

手机版|关于我们|联系我们|ExcelHome

GMT+8, 2024-11-16 16:20 , Processed in 0.046089 second(s), 11 queries , Gzip On, MemCache On.

Powered by Discuz! X3.4

© 1999-2023 Wooffice Inc.

沪公网安备 31011702000001号 沪ICP备11019229号-2

本论坛言论纯属发表者个人意见,任何违反国家相关法律的言论,本站将协助国家相关部门追究发言者责任!     本站特聘法律顾问:李志群律师

快速回复 返回顶部 返回列表