GPT答: |
7i24.cn
|
以下是一个示例代码,可以实现从多个Excel文件中抽取满足条件的表,并将结果存放在本工作簿中新建的工作表中:
```
Sub ExtractTables()
Dim folderPath As String
Dim fileExtension As String
Dim fileName As String
Dim filePath As String
'设置文件夹路径和文件扩展名
folderPath = "C:\MyFolder\"
fileExtension = "*.xlsx"
'循环遍历指定文件夹下所有符合条件的文件
fileName = Dir(folderPath & fileExtension)
Do While fileName <> ""
filePath = folderPath & fileName
'打开Excel文件并遍历其中所有工作表
Workbooks.Open (filePath)
For Each ws In ActiveWorkbook.Worksheets
'判断是否满足条件(例如:表名包含“Sales”)
If InStr(ws.Name, "Sales") > 0 Then
'复制符合条件的表到本工作簿中新建的工作表上,并重命名为原始文件名+原始表名(例如:Sales.xlsx_SalesData)
ws.Copy After:=ThisWorkbook.Sheets(ThisWorkbook.Sheets.Count)
ThisWorkbook.Sheets(ThisWorkbook.Sheets.Count).Name = Left(fileName, Len(fileName) - 5) & "_" & ws.Name
End If
Next ws
Workbooks(fileName).Close SaveChanges:=False
fileName = Dir()
Loop
End Sub
```
需要注意以下几点:
1. 在代码执行前,需要先创建一个空白工作簿。
2. 上述示例代码中的条件判断(例如:表名包含“Sales”)可以根据实际需求进行修改。
3. 如果需要抽取的表不止一个,可以在循环内部添加多个复制和重命名操作。
|