VBA在多Excel工作薄数据汇总的应用_相同表结构.docx

上传人:scccc 文档编号:12108433 上传时间:2021-12-01 格式:DOCX 页数:7 大小:16.55KB
返回 下载 相关 举报
VBA在多Excel工作薄数据汇总的应用_相同表结构.docx_第1页
第1页 / 共7页
VBA在多Excel工作薄数据汇总的应用_相同表结构.docx_第2页
第2页 / 共7页
VBA在多Excel工作薄数据汇总的应用_相同表结构.docx_第3页
第3页 / 共7页
VBA在多Excel工作薄数据汇总的应用_相同表结构.docx_第4页
第4页 / 共7页
VBA在多Excel工作薄数据汇总的应用_相同表结构.docx_第5页
第5页 / 共7页
点击查看更多>>
资源描述

《VBA在多Excel工作薄数据汇总的应用_相同表结构.docx》由会员分享,可在线阅读,更多相关《VBA在多Excel工作薄数据汇总的应用_相同表结构.docx(7页珍藏版)》请在三一文库上搜索。

1、VBA在多Excel工作薄数据汇总的应用_相同表结构论文导读::在工作中常对大量相同表结构的Excel工作薄进行汇总,利用手工复制、粘贴效率不高,本文探讨使用VBA编程对多工作薄数据进行汇总。关键词:VBA,相同表结构,多工作薄,数据汇总 前言Microsoft Office软件是是微软公司开发的办公自动化应用软件,Microsoft Excel是其中的一个重要的组成部分,由于它包含大量的公式函数对各种大量数据有很强的处理、统计分析能力,广泛地应用于管理、统计、金融等领域。伴随计算机的普及已经成为日常办公不可或缺的工具。目前使用Excel支持VBA编程,VBA是Visual Basi

2、c For Application的简写,基于是基于VisualBasic for Windows 发展而来的。在执行特定功能或重复性高的操作时,使用VBA 有助于使工作自动化相同表结构,提高工作效率会计毕业论文范文。另外,由于VBA 可以直接应用Office 套装软件的各项强大功能,所以对于程序设计人员的程序设计和开发更加方便快捷。1 需求分析在工作中经常会做数据的收集汇总,制定特定表结构的工作表供其它对象填写,然后回收汇总合并成一个完整表,主要采用手工打开工作表进行复制、粘贴这样简单而重复性较高的操作,容易使人疲惫导致操作错误,难以察觉,工作效率极低。通过VBA可以高效、快速地编制出应用程

3、序,高效完成工作任任务,而且在以后的工作中可以稍加修改或不用修改进行重复使用。2 应用案例某高校每年都进行职业技能考试,各种类统一报名,班级按制定好格式的报名表填写报名(如图1、图2),之后由负责老师进行汇总成一个表(如图3)。汇总的过程即为重复性的复制、粘贴。本文即是利用VBA编程解决这样一类问题。      2.1 应用条件:工作表结构格式化 各班级上交的登记表是考试报名要求的表结构格式是固定的、统一的相同表结构,只是各班报名人数不同,即表中的数据记录行数不同,数据填写在工作薄的第一张工作表中,与工作表名无关。汇总表增加了序号、班级字段(方便后续统计处理)会计

4、毕业论文范文。2.2 数据汇总的具体实现2.2.1 设计思路及界面控件功能设计首先将所有源工作薄存放于一个文件夹中;新建汇总工作薄在其它文件夹下,在汇总表.xls工作薄中第一个工作表进行界面设计(如图4),编写VBA代码,数据汇总结果存于第二个工作表中,设置好标题行,并进行相关单元格格式设置;用户通过界面中的浏览按钮浏览源工作薄所在的文件夹,获取其路径显示界面中文本框中;并设置源工作表和汇总表的标题行数及要读取的源工作表数据的列数,读取源工作表的数据区域及汇总表的存放位置;然后单击开始按钮执行汇总命令,单击查看按钮查看结果。      2.2.2 主要过程、函数代

5、码 (1)点击浏览按钮调用过程代码如下,实现添加源数据文件夹路径 '此处省略打开文件夹对话框代码'以下浏览按钮选择源工作薄文件夹路径Private Sub btnPath_Click()Dim FName As StringFName =BrowseFolderA(Caption:='选择源工作薄所在文件夹')If FName vbNullString Then txtPath.Text = FNameEnd Sub(2)开始按钮对应过程,实现将选择的文件夹路径中所有的工作薄中的第一个工作表中的数据导入到汇总表中。Private Sub btnCommit_Cl

6、ick() '省略了为使代码更快而在运行前保存并关闭Excel相关状态的代码Dim i, j As LongDim rCount As LongDim s_Rows, s_Col,s_BeginRow As LongDim t_BeginRow,t_BeginCol As Longs_BeginRow =txtSRowBegin.Value '获取源表要读取的数据起始空s_Col = txtCols.Value '获取源表要读取的数据总列数t_BeginRow =txtTRowBegin.Valuet_BeginCol = txtTColBegin.Value'

7、以上两行表示汇总表起始写入行/列相同表结构,不包含标题行/新建字段列,并在后面运行过程中自增1下移/右移到新空白行/列供新的数据导入Dim MyFolder As FolderDim FileArrDim MyFile As FileDim FilePath As String'以下打开登记文件夹下所有的文件名Set MyFSO =CreateObject('Scripting.FileSystemObject')Set MyFolder =MyFSO.GetFolder(txtPath)Set FilesArr =MyFolder.FilesFilePath = tx

8、tPath.Value &'''以下代码依次打开每个源工作薄,检测其中数据记录个数,并循环导入到汇总表中。For Each MyFile InFilesArrSet xlapp = CreateObject('Excel.Application') '创建EXCEL对象Set xlbook = xlapp.Workbooks.Open(FilePath & MyFile.Name) '打开已经登记的EXCEL工件簿文件xlapp.Visible = False '设置EXCEL对象不可见Set xlsheet =

9、xlbook.Worksheets(1) '设置工作表对象s_Rows = xlsheet.Range('a65535').End(xlUp).Row '获取源工作表A列已使用的总行数包括标题行rCount = s_Rows - s_BeginRow + 1 '计算源工作表sheets(1)数据记录的个数ThisWorkbook.Sheets(3).Range('B' & t_BeginRow & ':'& 'B' & (t_BeginRow + rCount - 1) =

10、MyFile.Name '在汇总表B列t_BeginRow 开始的rCount个单元格开始填充已打开的工作薄的名称,表示本行数据记录来源。For i = s_BeginRow To s_RowsFor j = 1 To s_ColThisWorkbook.Sheets(3).Cells(t_BeginRow, t_BeginCol + j - 1) = xlsheet.Cells(i,j) '将源工作表中数据导入到汇总表该工作薄名称单元格后单元格中NextThisWorkbook.Sheets(3).Cells(t_BeginRow, 1) = t_BeginRow - txt

11、TRowBegin.Value +1 '在第一列序号列实现自动填充t_BeginRow = t_BeginRow + 1 '汇总表开始行下移逐条实现导入Next'已下代码关闭源工作薄xlbook.Closexlapp.QuitSetxlapp = NothingNext '省略程序运行后,恢复Excel原来的状态的代码End Sub(3)查看按钮对应代码Private Sub btnResult_Click()Worksheets('汇总表').Activate '激活汇总表,查看结果End Sub(4)清空汇总表数据按钮对应代码Priv

12、ate Sub btnClear_Click()Dim a, b As Longa = txtTRowBegin.Valueb = 65536Worksheets('汇总表').Rows(a &':' & b).ClearContents '汇总表数据记录行清除内容End Sub3 结束语Office办公软件所提供的命令按钮可以满足我们平时办公需要,然而要想使我们的办公自动化程度更高、效率更高,则要学习利用VBA对Excel进行二次开发,研究制定出个性、高效的解决方案,可以让我们在大量繁琐的操作中解脱出来。参考文献1John Walkenbach著.盖江南,王勇等译.Excel 2003高级VBA编程宝典M.电子工业出版社,2005.2Excel Home.Excel应用大全M.人民邮电出版社,2008.  

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 社会民生


经营许可证编号:宁ICP备18001539号-1