通过VBA实现Excel纵向跨越合并单元格
2014-03-31 19:22
656 查看
作用描述:Excel本身所带的跨越合并功能可以对区域数据按行进行合并,但没有提供按列进行合并的功能,借助于此宏脚本实现该功能
1、按下Alt+F8,给宏起名,点击创建
2、新创建的宏主体部分是空白的,在sub和end sub之间粘贴以下脚本
4、给宏设置快捷键,按Alt+F8,选项,设置快捷键
5、选中需要合并的单元格区域
6、按下设置的快捷键(比如上面图中设置的Ctrl+q)得到合并后的单元格效果
备注:1、如果Excel未启用宏,脚本不能执行
2、为防止操作错误导致数据丢失,脚本不对含有数据的单元格执行合并操作
如果需要合并第一行有数据的区域,使用以下 If WorksheetFunction.CountA(Selection.Offset(1, 0).Resize(hi - 1, 1)) = 0 Then
替换 If WorksheetFunction.CountA(Selection) = 0 Then
3、对已经合并的单元格同样有效
1、按下Alt+F8,给宏起名,点击创建
2、新创建的宏主体部分是空白的,在sub和end sub之间粘贴以下脚本
'Sub merge() ' 纵向合并单元格 On Error GoTo ErrorHandler Dim co, ro, hi, wi As Integer 'co起始列,ro起始行,hi需要合并的行数,wi需要处理的列数 co = Selection.Column ro = Selection.Row hi = Selection.Rows.Count wi = Selection.Columns.Count Selection.UnMerge ActiveSheet.Range(Cells(ro, co), Cells(ro, co)).Resize(hi, 1).Select '选中第一个需要合并的单元格区域 While wi > 0 If WorksheetFunction.CountA(Selection) = 0 Then Selection.merge '判断非空单元格数量,存在非空单元格时,不执行合并操作 End If ActiveCell.Offset(0, 1).Resize(hi, 1).Select '选中下一个需要合并的单元格区域 wi = wi - 1 Wend ActiveSheet.Cells(ro, co).Select ErrorHandler: End Sub3、粘贴完成后是这样的,关闭编辑窗口
4、给宏设置快捷键,按Alt+F8,选项,设置快捷键
5、选中需要合并的单元格区域
6、按下设置的快捷键(比如上面图中设置的Ctrl+q)得到合并后的单元格效果
备注:1、如果Excel未启用宏,脚本不能执行
2、为防止操作错误导致数据丢失,脚本不对含有数据的单元格执行合并操作
如果需要合并第一行有数据的区域,使用以下 If WorksheetFunction.CountA(Selection.Offset(1, 0).Resize(hi - 1, 1)) = 0 Then
替换 If WorksheetFunction.CountA(Selection) = 0 Then
3、对已经合并的单元格同样有效
相关文章推荐
- 关于Excel下通过VBA实现工作簿文件下工作表的合并
- excel通过vba实现智能提示功能小结
- EXCEL vba 实现通过超链接跳转到隐藏工作表 回到目录隐藏打开工作表
- EXCEL中用VBA实现有选择的控制必输
- C#操作Excel时找不到“EXCEL9.OLB”com组件,可以通过如下方法实现:
- 使用VBA实现简单的EXCEL异或操作
- C#DataTable导出Excel,并实现合并单元格
- 通过SQL语句直接实现Excel与数据库的导入导出
- 【VBA】 通过VBA脚本将EXCEL的数据导入 ORACLE
- Java通过列索引获取Excel其对应列的字母(两种实现算法)
- EXCEL VBA]EXCEL中用递归实现任意n(3≤n≤256)阶幻方
- java实现把对象数组通过excel方式导出的功能
- 通过VBA将多个格式相同的Excel文件合并成一个文件,带文件处理
- Excel中,通过 「条件格式」 实现, 下拉菜单选择某个值时,这一行的颜色改变。
- 【VBA研究】VBA通过HTTP协议实现邮件轨迹跟踪查询
- 通过table标签,PHP输出EXCEL的实现方法
- php操作EXCLE(通过phpExcle实现向excel写数据)
- excel中 VBA实现 两sheet表间查询赋值应用示例
- 通过调用第三方实现word,ppt,excel的打开
- EXCEL VBA]EXCEL中用递归实现任意n(3≤n≤256)阶幻方