ultraedit比较文件没反应_利用VBA批量修改文件夹中的表格名称

287f16de-7c14-eb11-8da9-e4434bdf6706.png

概述:数据以电商公司实际的应用需求出发,现在有某个平台的各店铺销售账单,现在需要匹配修改表名。原始表名如下:

2b7f16de-7c14-eb11-8da9-e4434bdf6706.png

现在需要批量将“速卖通店铺”修改为 “smt”,当表格较少的时候(<5)可以利用重命名的方式来处理。如果一个文件夹中存在100个、1000个是否存在较便捷的方式来进行批量处理。显然,此时一个一个手工重命名费时费力。下面,我们看如何使用VBA来30秒搞定。

1、 将文件夹“smtOrder(2019-05)20191109191825”放在桌面上(随意存在哪里均可以);

2、在文件夹“smtOrder(2019-05)20191109191825”中建立一个新的表格;

2e7f16de-7c14-eb11-8da9-e4434bdf6706.png

3、打开新建的工作表,选择 开发工具>VB编辑器>插入>模块

337f16de-7c14-eb11-8da9-e4434bdf6706.png

4、复制如下代码块,并运行

Sub 批量获取文件名()
Cells = ""
Dim sfso
Dim myPath As String
Dim Sh As Object
Dim Folder As Object
Application.ScreenUpdating = False
On Error Resume Next
Set sfso = CreateObject("Scripting.FileSystemObject")
Set Sh = CreateObject("shell.application")
Set Folder = Sh.BrowseForFolder(0, "", 0, "")
If Not Folder Is Nothing Then
  myPath = Folder.Items.Item.Path
End If
Application.ScreenUpdating = True
Cells(1, 1) = "旧版名称"
Cells(1, 2) = "文件类型"
Cells(1, 3) = "所在位置"
Cells(1, 4) = "新版名称"
Call 直接提取文件名(myPath & "")
End Sub
'获取选定文件夹下的所有表格名称
Sub 直接提取文件名(myPath As String)
    Dim i As Long
    Dim myTxt As String
    i = Range("A1048576").End(xlUp).Row
    myTxt = Dir(myPath, 31)
    Do While myTxt <> ""
    On Error Resume Next
        If myTxt <> ThisWorkbook.Name And myTxt <> "." And myTxt <> ".." And myTxt <> "081226" Then
            i = i + 1
            Cells(i, 1) = "'" & myTxt
            If (GetAttr(myPath & myTxt) And vbDirectory) = vbDirectory Then
                Cells(i, 2) = "文件夹"
            Else
                Cells(i, 2) = "文件"
            End If
            Cells(i, 3) = Left(myPath, Len(myPath) - 1)
        End If
        myTxt = Dir
    Loop
End Sub
'批量重新命名表格名称
Sub 批量重命名()
Dim y_name As String
Dim x_name As String
For i = 2 To Range("A1048576").End(xlUp).Row
   y_name = Cells(i, 3) & "" & Cells(i, 1)
   x_name = Cells(i, 3) & "" & Cells(i, 4)
   On Error Resume Next
   Name y_name As x_name
Next
End Sub

运行后,返回新建的excel表格,可以看到:

377f16de-7c14-eb11-8da9-e4434bdf6706.png

现在excel表格表格中,批量生成新版名称的文件名:

3b7f16de-7c14-eb11-8da9-e4434bdf6706.png

接着再返回VB代码界面,再次运行代码(选择宏名称:批量重命名)

3f7f16de-7c14-eb11-8da9-e4434bdf6706.png

修改后:

427f16de-7c14-eb11-8da9-e4434bdf6706.png

批量修改表名完成,上文比较啰嗦,但VBA在批量处理表格真的很实用方便。后面将继续更新VBA在其他批量处理表格方面的实际应用

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值