首页
学习
活动
专区
工具
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/)了解更多信息。

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

相关·内容

  • linux 常用命令

    1. 切换目录:cd [目录] 2. 查看当前目录文件:ls -a[查看所有文件包括隐藏]/-l[查看文件显示权限和所属] 3. 查看当前所在路径: pwd 4. 复制文件或者文件夹:cp [filename/-r folder] 5. 远程复制文件或者文件夹: – 复制本地到远程: scp [-r] local_path username@ip:path – 复制远程到本地: scp [-r] username@ip:path local_path 6. 移动或重命名文件或文件夹: mv [file/folder] 7. 创建文件夹: mkdir [folder_name]; 8. 变更文件或文件夹权限:chmod [-R:遍历文件夹下所有文件] [权限] [file/folder] – 解释: 例如权限为777 代表 user/group/other 的权限为 4+2+1/4+2+1/4+2+1, 4代表read读权限, 2代表写权限, 1代表执行权限 – drwxr–r–中的第一位: d代表文件夹,s代表socket文件,-代表普通文件,l代表软链 9. 变更文件所属用户或用户组: chown owner:group [file/folder] 10. 新建文件: – touch [filename] – vi/vim [filename] 11. 查看文件: – 输出文件内容:cat [filename] – tail [-f:实时输出文件内容] [filename] – less 12. 查找内容: – grep [正则] – awk 13. 建立软链: ln -s [realpath/filename] [realpath] 14. 查看包含所有用户的进程:ps -aux 15. 查看端口: netstat -anp – a代表:显示所有,默认不显示LISTEN的 – n代表:不显示数字别名 – p代表:显示关联的程序 16. 压缩 – 解压缩:tar -zxvf [filename] – 压缩:tar -zcvf [filename] 17. 查看当前命令所在的路径: which 18. 查看当前用户 – who – whoami 19. 查看当前系统运行多长时间:uptime 20. 可读性好的查看磁盘空间:df -h 21. 可读性好的查看文件空间:du -f –max-depth=[遍历文件夹的深度] [file/folder] 22. debian添加软件源:apt-add-repository [源] 23. 查找文件: – find [path] -name [filename] – find [path] -user [owername] – find [path] -group [groupname] 24. 删除文件或者文件夹: rm [-r] [file/folder] 25. 进程: – 杀掉进程:kill [pid] – 查看进程 * 查看:ps -aux * 查看父进程ID(ppid):ps -ef 26. 关机/重启 – 关机:shutdown -h now – 关机: init 0 – 关机: halt – 关机: poweroff – 重启: shutdown -r now reboot

    03
    领券