不同文件夹,文件名部分相同的文件合并到自动新建的文件夹下?

列如:三个文件夹,第一个文件夹(AA)的文件名称(Excel文件):za-yu-202111-001
第二个文件夹(BB)的文件名称(Word文件):Ya-yu-202111-001
第三个文件夹(CC)的文件名称(Excel文件):pa-yu-202111-001
它们都有相同的后缀202111-001,我想把这种部分相同的文件,放到自建立文件夹下,文件夹名称为第一个文件的名称,这里有几千个这样的文件,能用批处理解决这个问题吗,或者用VBA,谢谢,急用

通过文件换名,来达到区分分别放到哪个文件夹
1、在你这些excel文件夹下新建txt文件,输入:“dir >name.txt”,关闭txt文件,更改后缀为bat,然后双击运行。
2、新建excel然后把上面得出的name.txt中excel文件名复制到A列, B列更新名(如:第一文件夹za-yu-202111-001.xlsx)文件名一一对应, C列“="ren "&A1&" "&B1”
保留好此excel,后面需要反向将文件名变更回来。
3、新建txt文件,将上面excel中的C列复制到txt文档中,保存关闭,更改后缀为bat,然后双击运行。
4、然后对文件夹里面的文件名排序一下,把你需要调整的文件调整完。在重复一次上述操作把文件名变回来就好了。追问

我认为是我表达不对,是把不同文件夹中有相同后缀的文件的文件移动或复制到另一个文件夹中,就是按后缀分类文件。

温馨提示:答案为网友推荐,仅供参考
第1个回答  2021-11-16

在三个文件夹的上一级文件夹内新建一个excel文件(如:文件分类.xlsm),打开插入模块,粘贴代码,运行即可

Sub fleiwj()

On Error Resume Next

Dim tPath$, myPath$, myFile$, arr, brr, a$, i&, k As Byte, d As Object

Set d = CreateObject("scripting.dictionary")

tPath = ThisWorkbook.Path

arr = Array("AA", "BB", "CC")

For k = 0 To 2

myPath = tPath & "\" & arr(k)

myFile = Dir(myPath & "\" & "*.*")

Do While myFile <> ""

a = Right(Split(myFile, ".")(0), 10)

d(a) = ""

myFile = Dir

Loop

Next

brr = d.keys

For i = 0 To UBound(brr)

MkDir tPath & "\" & brr(i)

Next

For k = 0 To 2

myPath = tPath & "\" & arr(k)

myFile = Dir(myPath & "\" & "*.*")

Do While myFile <> ""

a = Right(Split(myFile, ".")(0), 10)

FileCopy myPath & "\" & myFile, tPath & "\" & a & "\" & myFile

myFile = Dir

Loop

Next

End Sub

本回答被提问者采纳
第2个回答  2021-11-16
把文件夹File里面的文件名有部分相似的文件提取到文件夹Files里面。同时以部分文件名一样的文件名取名新建
第3个回答  2021-11-16
文件名都是三个减号组成的吗,文件夹名称去中间减号后面的部分吗,用vba可以的。追问

其实这是举例,把后缀相同(202111-001)的放到新建的文件夹下,用第一个文件名作为新建文件夹名,VBA怎么实现

第4个回答  2021-11-16
你全身充溢着少女的纯情和青春的风采。留给我印象最深的是你那双湖水般清澈的眸子,以及长长的、一闪一闪的睫毛。像是探询,像是关切,像是问候。
相似回答