Excel VBA编写excel数据汇总宏命令 您所在的位置:网站首页 vba宏命令 Excel VBA编写excel数据汇总宏命令

Excel VBA编写excel数据汇总宏命令

2023-03-12 06:24| 来源: 网络整理| 查看: 265

一、概述

最近刚好有需求,就研究了下VBA编程,使用excel的宏命令编写了一个数据汇总小工具,汇总指定目录下的所有excel文件seet1的数据至一个新的excel表中,设计思想如下: 1、将要汇总的excel文件放置在一个“数据文件夹”中; 2、遍历该“数据文件夹”中的所有excel表sheet1的数据; 3、复制数据到一个新建工作簿中; 4、保存工作簿并更名为“已完成”; 5、最终就会看到新生成了一个“已完成.xlsx”。

二、代码

新建一个“模板”,再新建一个“过程”,编写VBA程序,代码如下:

'汇总指定文件夹下的所以excel表sheet1数据至新工作簿中 Sub Merge() Dim curdir, fs, f, fc, f1, fname, wb, sht '获取当前文件目录 curdir = ThisWorkbook.Path '获取要处理的数据表目录 sdir = curdir & "\数据文件夹" 'Debug.Print curdir '赋予文件系统访问对象 Set fs = CreateObject("Scripting.FileSystemObject") '获取对文件夹所有属性的访问 Set f = fs.GetFolder(sdir) '获取文件夹中所有 File 对象的集合 Set fc = f.Files Dim rows, cols, tbook, tsh, row1 '新建一个工作簿用于存放汇总数据 Set tbook = Workbooks.Add() '新工作簿的sheet1 Set tsh = tbook.Worksheets(1) '对新工作簿操作的行计数器 row1 = 0 '遍历要处理文件夹中的所有文件 For Each f1 In fc fname = f1.Name '打印正在处理的文件名 Debug.Print "正在处理文件:" + fname '打开文件 Set wb = Workbooks.Open(f1) Set sht = wb.Worksheets(1) '获取处理文件的行数 rows = sht.UsedRange.rows.Count '获取处理文件的列数 cols = sht.UsedRange.Columns.Count '对处理文件按行遍历 For rw = 1 To rows '行计数器加1 row1 = row1 + 1 '对处理文件按列遍历 For col = 1 To cols '将数据复制到新工作簿单元格 tsh.Cells(row1, col) = Cells(rw, col).Value Next Next wb.Close '关闭已处理完成文件 Next tbook.SaveAs (curdir & "\已完成") '保存新工作簿并更名 tbook.Close '关闭新工作簿 End Sub 三、运行结果

1、要处理的文件目录 在这里插入图片描述 2、处理完成后,新增了一个“已完成.xlsx”。 在这里插入图片描述 3、“已完成.xlsx”文件内容 在这里插入图片描述



【本文地址】

公司简介

联系我们

今日新闻

    推荐新闻

    专题文章
      CopyRight 2018-2019 实验室设备网 版权所有