Excel内置了合并居中功能,但是合并后会丢失部分数据。

图5.24中A1:C1区域合并后只能保留A1的值。

Excel 是否能跨列合并且保留所有数据?-Excel22

图5.24 Excel内置的合并居中效果

使用内置的合并工具不仅会丢失数据,还无法实现批量合并。例如,要求实现图 5.25 中每一行单独执行一次的合并,Excel是无法完成的。

Excel 是否能跨列合并且保留所有数据?-Excel22

图5.25 特殊需求的批量合并效果

有没有办法突破以上两个限制,既合并后保留所有值,又可以实现批量合并,每行单独合并一次?

解题步骤

Excel内置的任何工具都无法实现此需求,因此笔者用VBA开发了一个新的插件来完成,使用插件就和使用内置功能一样,只要单击菜单即可合并完成,而且支持撤销。

插件的名称为“疑难114 增强版跨越合并.xlam”,读者可以从案例文件中找到此文件。假设只是临时使用插件来执行一次合并,那么使用步骤如下。

1.打开需要合并数据的工作簿,假设该工作簿中有 A1:C6 区域需要合并,内容如图 5.26所示。

Excel 是否能跨列合并且保留所有数据?-Excel22

图5.26 待合并数据

2.双击打开“疑难114 增强版跨越合并.xlam”,此时在“开始”选项卡中会产生一个新按钮,名为“跨越合并”,效果如图5.27所示。

3.选择A1:C6区域,然后单击功能区的“开始”→“跨越合并”,执行结果如图5.28所示。

Excel 是否能跨列合并且保留所有数据?-Excel22

图5.27 新菜单

Excel 是否能跨列合并且保留所有数据?-Excel22

图5.28 合并结果

如果此时按下组合键<Ctrl+Z>,则可以返回到如图5.27所示的状态。

如果需要经常使用此功能,那么应该将文件“疑难114 增强版跨越合并.xlam”安装在Excel中,随时都可以调用,而非每次使用前都双击打开“疑难114 增强版跨越合并.xlam”。

安装“疑难114 增强版跨越合并.xlam”的步骤如下。

1.按组合键<Alt+T+I>,弹出“加载宏”对话框,对话框界面如图5.29所示。

2.单击“浏览”按钮,在“浏览”对话框中找到文件“疑难114 增强版跨越合并.xlam”,然后双击文件返回“加载宏”对话框,此时插件已经安装完成,在“加载项”对话框中可以看到新装的插件名称和功能介绍,界面如图5.30所示。

Excel 是否能跨列合并且保留所有数据?-Excel22

图5.29 “加载宏”对话框

Excel 是否能跨列合并且保留所有数据?-Excel22

图5.30 安装插件后的“加载宏”对话框

3.单击“确定”按钮返回工作表界面,在“开始”选项卡中将会出现名为“跨越合并”的新菜单,而且菜单会永远出现在此处,随时可以调用。

知识扩展

1.Execl插件相当于游戏软件的外挂,它依附在Excel中,不能脱离Excel使用。

2.Excel 插件有多种开发方式,其中最简单的是使用 VBA 开发,作者编著的另一本 Excel图书《Excel VBA程序开发自学宝典(第3版)》讲解了大量的插件开发过程和基础理论,有兴趣者可以翻阅此书。

3.使用插件后只能撤销插件所执行的功能,之前所有操作都不能撤销,如对 A1:C1A 区域添加边框、修改字体颜色,然后调用插件执行合并,此时只能撤销合并这个步骤,前面的两个步骤是不能撤销的。

4.按组合键<Alt+T+I>的正确方式是先按Alt键,松开后再按T键,松开T键后再按I键,不能三键同时按,否则不能弹出“加载宏”对话框。