在一个文件夹中有四张EXCEL工作薄,文件名分别为表一、表二、表三、表四,请编写一个VBA程序,要求把表二、表三、表四中的内容复制到表一对应名称的工作表中,并支持模糊匹配。
时间: 2024-09-20 14:07:01 浏览: 64
这是一个简单的VBA任务,涉及到文件操作和工作簿之间的数据移动。以下是一个基本的示例代码,它将在当前工作簿内查找与文件名相同的表格,并将其他工作簿内的对应表格复制过来:
```vba
Sub CopySheets()
Dim ws As Worksheet
Dim srcWB As Workbook
Dim targetSheetName As String
' 遍历文件夹内的所有工作簿
For Each srcWB In ThisWorkbook.Path & "\*.xls*"
If Dir(srcWB, vbNormalFocus) = "" Then GoTo NextWB ' 如果不是工作簿则跳过
Set srcWB = Workbooks.Open(srcWB)
' 模糊匹配目标工作表名称
For Each ws In ThisWorkbook.Worksheets
If LCase(ws.Name) Like LCase("表*" & "*.xls*") Then
targetSheetName = ws.Name ' 确定源工作表名称
Exit For
End If
Next ws
' 如果找到目标工作表,则复制数据
If Not IsEmpty(targetSheetName) Then
srcWB.Sheets(srcWB.Sheets.Count).Copy After:=ThisWorkbook.Sheets(targetSheetName)
Application.CutCopyMode = False
Else
MsgBox "未找到匹配的工作表", vbInformation
End If
NextWB:
srcWB.Close SaveChanges:=False ' 关闭源工作簿
End Sub
```
这个代码会在指定路径下查找名为“表一”、“表二”、“表三”、“表四”的工作簿,并尝试复制这些工作簿的最后一张工作表到目标工作簿中相应位置。如果找不到匹配的工作表名,会弹出信息提示。
阅读全文