写一段VBA宏,将文件夹 ORG_FILES里面文件名中含有DA,DZ,MP这3种前缀加10位数字后缀完全 一致文件复制生成新的文件放到NEW_FILES下新建的文件夹里,新建的文件夹用这相同的2位前缀和10位数字后缀命名. 这些新建的文件夹名字排序放入ZTE DOC这个表格的A1下面的格子里. ORG_FILES 文件夹位置:C:\Users\DELL\Desktop\ZTE FILE\ORG_FILES NEW_FILES文件夹位置:C:\Users\DELL\Desktop\ZTE FILE\NEW_FILES ZTE DOC表格文件位置:C:\Users\DELL\Desktop\ZTE FILE
时间: 2023-07-04 20:27:44 浏览: 101
以下是一个可能的实现方案:
```
Sub CopyFiles()
Dim org_folder As String
Dim new_folder As String
Dim doc_path As String
Dim doc_name As String
Dim doc As Workbook
Dim ws As Worksheet
Dim prefix As String
Dim suffix As String
Dim file_name As String
Dim new_folder_path As String
Dim new_file_path As String
Dim i As Integer
Dim j As Integer
'设置文件夹和表格路径
org_folder = "C:\Users\DELL\Desktop\ZTE FILE\ORG_FILES\"
new_folder = "C:\Users\DELL\Desktop\ZTE FILE\NEW_FILES\"
doc_path = "C:\Users\DELL\Desktop\ZTE FILE\ZTE DOC.xlsx"
doc_name = "ZTE DOC"
'打开表格
Set doc = Workbooks.Open(doc_path)
Set ws = doc.Worksheets(doc_name)
'遍历文件夹内的文件
i = 1
j = 1
file_name = Dir(org_folder)
Do While file_name <> ""
'判断文件名是否符合要求
If Left(file_name, 2) = "DA" Or Left(file_name, 2) = "DZ" Or Left(file_name, 2) = "MP" Then
If Len(file_name) = 12 And IsNumeric(Right(file_name, 10)) Then
'提取前缀和后缀
prefix = Left(file_name, 2)
suffix = Right(file_name, 10)
'创建新文件夹
new_folder_path = new_folder & prefix & suffix & "\"
If Dir(new_folder_path, vbDirectory) = "" Then
MkDir new_folder_path
'将新文件夹名添加到表格中
ws.Cells(i, j) = prefix & suffix
i = i + 1
End If
'复制文件到新文件夹
new_file_path = new_folder_path & file_name
FileCopy org_folder & file_name, new_file_path
End If
End If
file_name = Dir
Loop
'保存表格和关闭文件
doc.Save
doc.Close
End Sub
```
这个宏会遍历指定的文件夹,对于每个符合要求的文件,将其复制到新建的文件夹中,并将新文件夹名添加到指定的表格中。请将代码复制到 VBA 编辑器中并保存文件后运行。在运行之前,请确保文件夹和表格的路径正确,并且表格中的第一个单元格是空的。
阅读全文