我正在使用MS Excel 2010,并且我有一个没有宏且没有公式的Excel工作表,所有内容均为原始格式。
该工作表包含许多列和行(列A至WC),如下图所示。
我想(合并)将所有列从" B"移动到" WC"到列" A"的最后一行。
" A"列的内容不得舍弃。
必须将" B"至" WC"的每一列插入" A"列的最后一行下方
我的列故意不包含列标题(列名)。
实现此目标的最佳方法是什么?
我确实找到了这个线程:
如何在Excel中将列中的行合并到一个单元格中? -老实说,我目前无法真正理解如何在工作表中进行申请。其次,该主题创建于3年前,并且活跃于2个月前。在那里,我决定在这里问一个新问题。
我进行了研究,发现了很多不同类型的合并方式:
考虑到我的情况下的列数,我认为VBA脚本解决方案将是最合适的。如果有人可以提供反馈意见,我会给+1
这是我没有for循环的自制宏:
哎呀。由于某种原因,该错误在305707记录后停止,这是因为我的工作表包含许多活动单元格,从而导致一个范围内的其他存储单元格并使A列中的行溢出,超出了Excel的内存限制。这是另一回事了。
这个微小的宏代码为我工作:
不幸的是,由于MS Excel 2010的限制,它在305707记录后停止了,我建议如果其他人使用它,则应该删除几列,因为255列很多(即使对于MS Access)。您还应该在安全模式下运行MS Excel。
这是一种使用数组加快速度的方法。
这是一种俄罗斯方块方法。它可能不是最快的方法,但是关闭屏幕更新和事件处理应该可以加快速度。如果涉及公式,则也可以将计算模式设置为xlCalculationManual。
如果您的数据不匹配,请在第三行中更改工作表名称,并在第五行中调整边界列(当前为WC列)。
如果您除了工作表上的相关数据以外还有其他任何东西,那真的不是一个合适的解决方案,因为它会极大地替换所有未移动的内容。