Excel精英培训网

 找回密码
 注册
数据透视表40+个常用小技巧,让你一次学会!
查看: 2707|回复: 8

[已解决]求助!Excel自动按工作表内特定值自动批量重命名,请问该如何编写VBA? 谢谢

[复制链接]
发表于 2016-4-4 10:54 | 显示全部楼层 |阅读模式
本帖最后由 ellick1988 于 2016-4-4 14:25 编辑

如题:求助!Excel自动按工作表内特定值自动批量重命名

具体就是如附件里面所有excel文件自动批量重命名为“表格k1"“表格k2"“表格k3"....请问该如何编写VBA?
求教了!谢谢!
新建文件夹.rar (31.79 KB, 下载次数: 8)
发表于 2016-4-4 11:31 | 显示全部楼层
Sub test()
    Dim fso As Object   '文件系统对象
    Dim fld As Object   '文件夹对象
    Dim fl As Object    '文件对象
    Dim i As Integer
    Dim p As String
    Dim f As String

    p = ThisWorkbook.Path
    Set fso = CreateObject("Scripting.FileSystemObject")
    Set fld = fso.GetFolder(p)

    For Each fl In fld.Files
        If fl.Name <> ThisWorkbook.Name Then
            i = i + 1
            f = "表格" & i & "." & fso.GetExtensionName(p & fl.Name)
            If fl.Name <> f Then fl.Name = f
        End If
    Next
End Sub

1.rar (8.64 KB, 下载次数: 6)
回复

使用道具 举报

发表于 2016-4-4 11:49 | 显示全部楼层    本楼为最佳答案   
  1. Sub Macro1()
  2. mypath = ThisWorkbook.Path & ""
  3. wj = Dir(mypath & "*.xls*")
  4. Application.ScreenUpdating = False
  5. Do While wj <> ""
  6.     If wj <> ThisWorkbook.Name Then
  7.         With Workbooks.Open(mypath & wj)
  8.             .SaveAs mypath & "命名后\表格" & .Sheets(1).[b3] & ".xlsx"
  9.             .Close 0
  10.         End With
  11.         'Kill mypath & wj
  12.     End If
  13.     wj = Dir
  14. Loop
  15. Application.ScreenUpdating = True
  16. End Sub
复制代码

新建文件夹.zip

39.18 KB, 下载次数: 9

回复

使用道具 举报

 楼主| 发表于 2016-4-4 11:50 | 显示全部楼层
爱疯 发表于 2016-4-4 11:31
Sub test()
    Dim fso As Object   '文件系统对象
    Dim fld As Object   '文件夹对象

谢谢
我刚把你的文件放进附件文件夹里使用,虽然是自动批量重命名了 不过并不是按文件里面的值“k1”“k2”...改成加“表格K1”“表格k2”...名字,请问是我操作问题出问题了吗?
回复

使用道具 举报

发表于 2016-4-4 11:59 | 显示全部楼层
ellick1988 发表于 2016-4-4 11:50
谢谢
我刚把你的文件放进附件文件夹里使用,虽然是自动批量重命名了 不过并不是按文件里面的值“k1”“ ...

把你测试失败的所有文件打包压缩,放上来看看
回复

使用道具 举报

发表于 2016-4-4 12:55 | 显示全部楼层
这道题比较简单,百度就可以了。
回复

使用道具 举报

 楼主| 发表于 2016-4-4 14:24 | 显示全部楼层
爱疯 发表于 2016-4-4 11:59
把你测试失败的所有文件打包压缩,放上来看看

谢谢 三楼兄台的回复 可以很好解决我的问题了
回复

使用道具 举报

 楼主| 发表于 2016-4-4 14:25 | 显示全部楼层
dsmch 发表于 2016-4-4 11:49

谢谢你的答案! 很好的解决了我的问题 太感谢了!
回复

使用道具 举报

 楼主| 发表于 2016-4-4 14:35 | 显示全部楼层
ellick1988 发表于 2016-4-4 11:50
谢谢
我刚把你的文件放进附件文件夹里使用,虽然是自动批量重命名了 不过并不是按文件里面的值“k1”“ ...

如果创建出现文件重复名字的 能否设定成默认不覆盖替换,如命名成“表格K3”存在了就变成"表格K3(2)"这样子的呢?
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

小黑屋|手机版|Archiver|Excel精英培训 ( 豫ICP备11015029号 )

GMT+8, 2024-4-20 18:16 , Processed in 0.227717 second(s), 13 queries , Gzip On, Yac On.

Powered by Discuz! X3.4

Copyright © 2001-2020, Tencent Cloud.

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