首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

VBA遍历文件夹以从某个工作表的多个工作簿中获取数据,但工作表名称在不同的工作簿中有所不同

在VBA中,可以使用FileSystemObject对象来遍历文件夹中的文件,并使用Workbook对象来打开和操作Excel工作簿。以下是一个示例代码,用于实现这个功能:

代码语言:vba
复制
Sub GetDataFromMultipleWorkbooks()
    Dim fso As Object
    Dim folder As Object
    Dim file As Object
    Dim wb As Workbook
    Dim ws As Worksheet
    Dim dataRange As Range
    Dim targetWorkbook As Workbook
    Dim targetWorksheet As Worksheet
    Dim targetRange As Range
    
    ' 设置目标工作簿和工作表
    Set targetWorkbook = ThisWorkbook ' 当前工作簿
    Set targetWorksheet = targetWorkbook.Sheets("目标工作表名称")
    Set targetRange = targetWorksheet.Range("目标数据范围")
    
    ' 创建FileSystemObject对象
    Set fso = CreateObject("Scripting.FileSystemObject")
    
    ' 获取文件夹对象
    Set folder = fso.GetFolder("文件夹路径")
    
    ' 遍历文件夹中的文件
    For Each file In folder.Files
        ' 检查文件扩展名是否为Excel文件
        If fso.GetExtensionName(file.Path) = "xls" Or fso.GetExtensionName(file.Path) = "xlsx" Then
            ' 打开工作簿
            Set wb = Workbooks.Open(file.Path)
            
            ' 根据工作表名称获取工作表对象
            On Error Resume Next
            Set ws = wb.Sheets("工作表名称")
            On Error GoTo 0
            
            ' 检查工作表是否存在
            If Not ws Is Nothing Then
                ' 复制数据到目标工作表
                Set dataRange = ws.Range("数据范围")
                dataRange.Copy targetRange
                
                ' 调整目标数据范围
                Set targetRange = targetRange.Offset(dataRange.Rows.Count)
                
                ' 关闭工作簿
                wb.Close False
            End If
        End If
    Next file
    
    ' 清理对象
    Set targetRange = Nothing
    Set targetWorksheet = Nothing
    Set targetWorkbook = Nothing
    Set dataRange = Nothing
    Set ws = Nothing
    Set wb = Nothing
    Set file = Nothing
    Set folder = Nothing
    Set fso = Nothing
End Sub

上述代码中,你需要修改以下部分来适应你的需求:

  • "目标工作表名称":目标工作表的名称。
  • "目标数据范围":目标工作表中用于粘贴数据的起始单元格。
  • "文件夹路径":包含要遍历的工作簿的文件夹路径。
  • "工作表名称":要从中获取数据的工作簿中的工作表名称。
  • "数据范围":要从中复制数据的工作表中的数据范围。

这段代码会遍历指定文件夹中的所有Excel文件,打开每个工作簿,并复制指定工作表中的数据到目标工作表中。请确保在运行代码之前,已经在目标工作簿中创建了目标工作表,并设置好目标数据范围。

对于这个问题,腾讯云没有直接相关的产品或服务。但是,腾讯云提供了一系列云计算解决方案,包括云服务器、云数据库、云存储等,可以帮助用户构建和管理云计算基础设施。你可以访问腾讯云官方网站(https://cloud.tencent.com/)了解更多信息。

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

领券