前景提要(文末提供源码下载)
昨天我们分享了如何将多个Excel工作薄按照指定列合并的方法,我们只需要手工选择需要合并单元格的表头就可以了,但是有小伙伴们在运用的过程中表示,有时候需要合并的表头的列并不是连续的,在这样的情况,如果还通过上节的房代码就没有办法实现了,比方说如果我们想要合并姓名和python的成绩的话,上节的代码就没有办法使用了,为了提升代码的通用性,我们这节来完善下代码
另外有小伙伴们表示希望能够提供含有代码的原件,方便自己之后有空的时候研究,所以小编也会从本节开始,为大家提供含有代码的原件
场景模拟
数据源还是原来的规则数据源
![b90a186d4c4061f738455070d1114156.png](https://img-blog.csdnimg.cn/img_convert/b90a186d4c4061f738455070d1114156.png)
但是我们今天想要合并的是不连续的表头的数据,比方说,我想要合并姓名和python成绩,针对python的成绩进行专项分析,方便后续的教学活动的安排,那么我们要如何将姓名和python这两列的成绩提取出来呢?
如果我们手工操作的话,我们需要知道姓名和python所在的列数,那么我们用VBA操作呢?也是一样的逻辑,找到列数,将对应的列复制出来,然后综合上节我们学习的数组的使用方法,搞定,来看代码
代码区
Sub test()Dim rng As Range, sth As Worksheet, arr(), book As Workbook, arr1Application.DisplayAlerts = FalseSet book = ActiveWorkbookSet rng = Application.InputBox("请选择要合并的列名