[原创]VBA实现汇总excel,将多个Excel文件内容复制到一个Excel文件中
功能:遍历用户指定的文件夹,把文件夹中所有的excel文件的第一个表格的数据复制到本excel文件中。注意,每个excel文件中有效数据行的判断标准是A列的最后一个有数据的单元格的行号,比如A列到第10行结束,B列到第11行结束,那么程序将不会复制第11行。
说明:鄙人也不是大闲人,也就没有去迎合各种需求,只是根据自己的需要去写的,拿出来分享一下。
闲话少说,直接上代码,复制到宏命令代码里面,执行combine宏即可实现。
Sub combine()
Dim folder As String
Dim count As Integer folder = ChooseFolder() count = combineFiles(folder, "xls")
'count = count + combineFiles(folder, "xlsx") End Sub '整合文件
Function combineFiles(folder, appendix)
Dim MyFile As String
Dim s As String
Dim count, n, copiedlines As Integer MyFile = Dir(folder & "\*." & appendix)
count = count +
n =
Do While MyFile <> ""
copiedlines = CopyFile(folder & "\" & MyFile, , n)
If copiedlines > Then
n = n + copiedlines
count = count +
End If
MyFile = Dir
Loop
combineFiles = count
End Function '复制数据
Function CopyFile(filename, srcStartLine, dstStartLine) Dim book As Workbook
Dim sheet As Worksheet
Dim rc As Integer CopyFile = If filename = (ThisWorkbook.Path & "\" & ThisWorkbook.Name) Then
Exit Function
End If Set book = Workbooks.Open(filename)
Set sheet = book.Sheets() '使用第一个sheet
rc = sheet.Range("A65536").End(xlUp).Row
If rc >= srcStartLine Then
sheet.Rows(srcStartLine & ":" & rc).copy ThisWorkbook.Sheets().Range("A" & dstStartLine) '复制到指定位置
CopyFile = rc - srcStartLine +
End If
book.Close End Function '选择文件夹
Function ChooseFolder() As String
Dim dlgOpen As FileDialog Set dlgOpen = Application.FileDialog(msoFileDialogFolderPicker)
With dlgOpen
If .Show = - Then
ChooseFolder = .SelectedItems()
End If
End With
Set dlgOpen = Nothing
End Function
[原创]VBA实现汇总excel,将多个Excel文件内容复制到一个Excel文件中的更多相关文章
- 多个excel文件内容合并到一个excel文件的多个sheet的小程序
# -*- coding:utf-8 -*- import xlrd, xlsxwriter # 待合并excelallxls = ["D:\\excelcs\\***.xlsx" ...
- excel to datatable (c#用NPOI将excel文件内容读取到datatable数据表中)
将excel文件内容读取到datatable数据表中,支持97-2003和2007两种版本的excel 1.第一种是根据excel文件路径读取excel并返回datatable /// <sum ...
- Python学习笔记_使用openpyxl操作Excel,在同一个文件里复制某一个sheet
应用场景:定制一个Excel模板文件,其中定义了一个模板Sheet,以此模板文件里的模板sheet为样例,制作报表,里面有不止一个模板样例Sheet 一.软件环境: 1.OS:Win10 64位 2. ...
- .NET读取Office文件内容(word、excel、ppt)
引用命名空间 using Microsoft.Office.Core; using Word = Microsoft.Office.Interop.Word; using Excel = Micros ...
- 将多个单元格内容连接到一个单元格中(EXCEL)
连接符号:& 如下图,我们要将表格中每名员工的姓名.入职时间以及年龄放入到同一个单元格中,形成以“-”连接的形式. 这时我们要用到Excel中的连接符“&”,也就是在按下Shift+数 ...
- Excel VBA 从一个工作簿查找另一个一个工作簿中的一些内容复制到另外一个工作簿
帮朋友来写个Excel VBA 以前写过ASP,所以对vb略微熟悉,但VBA 没有仔细研究过. 以前只研究过 vba 写一个 计算个人所得税的程序. 这次写的功能也算是简单,但也耗费了两天的功夫. 需 ...
- C#将一个excel工作表根据指定范围拆分为多个excel文件
C#将一个excel工作表根据指定范围拆分为多个excel文件 微软Excel没有提供直接的方法来拆分excel文件,因此要拆分一个excel文件最简单的方法可能就是手动剪切和粘贴了,除此之外,还有其 ...
- PHP读取Excel文件内容
PHP读取Excel文件内容 项目需要读取Excel的内容,从百度搜索了下,主要有两个选择,第一个是PHPExcelReader,另外一个是PHPExcel. PHPExcelReader比较 ...
- 用pandas库修改excel文件里的内容,并把excel文件格式存为csv格式,再将csv格式改为html格式
假设有Excel文件data.xlsx,其中内容为: ID age height sex weight张三 1 39 181 female 85李四 2 ...
随机推荐
- 【Activiti学习之四】Activiti API(三)
环境 JDK 1.8 MySQL 5.6 Tomcat 7 Eclipse-Luna activiti 6.0 一.启动流程 多种方式启动 package com.wjy.pro; import or ...
- Java一个对象占用多少字节
虚拟机:Java HotSpot(TM) 64-Bit Server VM (25.221-b11, mixed mode) 对象的内存以字节为单位,且必须是8的倍数,它的构成由3部分组成:对象头+实 ...
- Android的开机启动流程
1.Android的开机启动流程 Android的层次框架图,如下所示: 图片清晰地展示了Android的五层架构,从上到下依次是:应用层.应用框架层.库层.运行时层以及Linux内核层.Androi ...
- [转帖]UML类图关系图解
UML类图关系图解 https://www.cnblogs.com/TvvT-kevin/p/9357339.html 一.类结构 在类的UML图中,使用长方形描述一个类的主要构成,长方形垂直地分为三 ...
- VueTreeselect出现unknown解决方法
VueTreeselect 控件显示[unknown]如图: treeselect 绑定的值需要与options输出的id相对应,若是空值,请不要给空字符串,0,等,因为会出现unknown,并且当选 ...
- C++连接SQL
1.引入ADO#import "C:\Program Files\Common Files\System\ado\msado15.dll" no_namespace rename( ...
- pandas mode()填充nan异常问题
df.mode()return的是一个frame,因为可能存在多个总数.那么用mode()来填充nan的时候就要注意了,如果直接 df.fillna(df.mode()) 会发现还是有很多空值没有填充 ...
- centos lnmp一键安装
安装 系统需求: 需要2 GB硬盘剩余空间 128M以上内存,OpenVZ的建议192MB以上(小内存请勿使用64位系统) Linux下区分大小写,输入命令时请注意! 安装步骤: 1.使用putty或 ...
- 一个简单便捷的树形显示Ztree
这是本人在闲时研究的一个用于显示树形列表的小玩意. zTree 是一个依靠 jQuery 实现的多功能 “树插件”.优异的性能.灵活的配置.多种功能的组合是 zTree 最大优点. 下面就说说怎么用吧 ...
- html引入公共模块
如果没有母版页,那么大量相同布局的页面会有很多相同的代码,那么这就提到了一个概念,叫重用性:可以将相同布局的代码放在一个单独的文件,里面写一些公共模块,那么在其他页面只需要在指定位置引入他们就可以了写 ...