EXCEL VBA 代码合并?

对于项目,我想调整合并行的高度以适合内容。

代码看起来干净整洁,但我无法正常工作,我认为这是由于列的大小不同而造成的。 高度总是很大。

我已经试图获得一个常数来将结果除以2或其他因素,但这不起作用。

你能看看并给我指导如何解决这个问题我遇到的高度比必要的高。

表头不同的文件想合并,本来我想说,不规则,你先整理呀!但是经常还是有人问,想必现实真的有乱的不成样子的表需要合并!那么我们就来聊聊吧!

偷个懒,我就去论坛找个素材,N个Exce文件,每个文件的表头部分有不同

现在需要合并,一般的程序都是按照位置合并的,并不通用,无法处理这个问题!

我们来看看如何处理!目前推荐的处理方法是PQ,如果你的版本目前不支持,再考虑后面提供的VBA代码!

Power Query处理这个问题真的是非常的简单,我们可以考虑获取到所有表的标题去重,然后去展开数据!

> 点击 【数据】- 【获取数据】- 【自文件】-【从文件夹】,版本差异,部分略有差异,找到文件夹基本OK
> 选择需要合并的文件所在的文件夹,【打开】,出现的界面中,点击【转换】。
通过以上步骤把数据加载到PQ编辑器中!
▼ 动画演示-请仔细看
> 点击 【添加列】 - 【自定义列】 - 输入公式 ,将二进制数值转成Excel文件数据。
只要下面简单一句即可!
友情提示:PQ合并文件虽然简单,但是有一个致命的坑,网上基本没人跟大家讲,那么就是这里的表是Table,包括定义名称生成的表、筛选等情况生成的临时表都在其中,所以经常有同学反馈有重复数据的问题,这里要特别注意一下!
懂VBA的同学,可以了解一下本文的处理思路,小编也是第一次按此思路处理,在第一次循环把标题和内容分别转入字典,这样避免二次循环,也可以确定结果列数,标题装入字典,方便我们根据标题的名称确定所属的列!装入字典,key用的是表名&文件名,一举两得!

本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击。

Excel表格的合并分为两种情况,一种是工作表合并、一种是工作簿合并

一个Excel表格叫做工作簿,每个工作簿中的Sheet叫做工作表

针对这两种情况的表格合并,今天我们来做个小结,看看都要哪些方法;不管你是高版本Excel还是低版本Excel,总有一种方法适合你。

当然这里不考虑极端的情况,如工作表/工作簿表头不一致、列数不同等,这里默认需要合并的工作表/工作簿表头都是一致的。

工作表的合并,顾名思义,合并同一工作簿下所有Sheets的数据,针对数据的多少,有不同的方法。

如果需要合并的数据比较少,这里可以利用剪贴板。

如何调出Excel剪贴板?它在开始功能区的最左边。

接着选中第一个sheet的内容,按CTRL+X快捷键,将sheet1内的所有内容剪切到剪贴板中;

同样的操作,将所有sheet的内容,全部CTRL+X剪切到剪贴板。

全部剪切完成,在新建的sheet中,点击左侧剪贴板中的“全部粘贴”按钮,完成工作表的合并。

不需要看懂代码,将代码复制粘贴到需要合并的工作簿中来,运行即可,表格合并完成。

Alt+F11两键,调出Visual Basic 界面,在左侧窗口中,右键选择“插入”—“模块”,将代码粘贴进去,点击运行按钮,完成数据表合并。

明细代码如下所示(直接复制可用):

依次点击【数据】—【获取数据】—【自文件】—【从工作簿】,选中需要合并的工作簿,点击【导入】。

之后进入到导航器界面,选中文件夹,点击【转换数据】。

进入Power Query编辑界面,取消勾选不需要的表名;

之后点击Data列扩展数据,点击确定,完成数据表的合并;

最后一步,点击左上角的“关闭并上载”即可将数据加载到Excel当中去。

剪贴板法适合少量表格的合并,VBA方法适合任意版本的Excel版本的数据合并,Power Query法只适合Excel2016及以上版本,如果其它版本想用这个功能,需要单独下载插件

工作簿的合并指合并在同一个文件下下所有的Excel工作簿。

首先我们需要将Excel表格文件另存为CSV文件,这一步可以通过VBA批量操作。

打开任意工作簿,调出Visual Basic 界面,输入以下代码(如何插入代码上面有介绍,这里不再赘述)

执行完毕后,将会将每一个表格生成一份csv文件。

之后保存文件,将文件后缀名修改为bat文件;

或者另存为,另存为界面需要注意两点:

第一点:文件名记得带.bat的后缀

第二点:保存类型选择【所有文件】

点击确定,就会出现一个可执行文件,类型为【windows批处理文件】。

双击此文件之后,当前文件夹内的所有csv文件全部被合并在一起。

此方法只适用于csv文件,不适用于xls/xlsx文件(也就是Excel表格),所以我们在第一步,将所有的Excel文件转化成csv格式

VBA运行方法都是一致的。

新建一个工作簿,打开,进入Visual Basic 界面,输入以下代码,点击运行,等待程序完成之后,工作簿完成合并。

依次点击【数据】—【获取数据】—【自文件】—【从文件夹】,选中需要合并的文件夹,点击【打开】,最后点击【转换数据】。

进入Power Query编辑界面,点击【Content】列,这里选择【参数1】,点击【确定】。

接着点击【Data】列扩展数据,点击【确定】,完成工作簿的合并,针对不需要的列可以右键删除,最后关闭并上载数据到Excel表格即可。

Windows 批处理适用于CSV文件,VBA适用于任意版本(如果Excel是2007以前版本,需要将代码中的XLSX修改成XLS)、Power Query适用于高版本Excel,各有所长

Excel工作表/工作簿的批量合并,分享给大家,希望对你有所帮助~

觉得内容还不错的话,给我点个“在看”呗

我要回帖

更多关于 用vba合并表格 的文章

 

随机推荐