数据表如下图中A列至D列所示,需要将C列和D列的数据进行合并。每个编号组中,C列合并后,保留第一个单元格(户主姓名),结果如F列至I列所示。
示例代码如下。
Sub Demo1()lst &#61; Cells(Activesheet.Rows.Count,1).End(xlDown).RowSet c &#61; Cells(3, 2)Application.DisplayAlerts &#61; FalseDo While c.Row < lstWith c.MergeArea.Offset(0, 1).Resize(.Count, 1).Merge.Offset(0, 2).Resize(.Count, 1).MergeEnd WithSet c &#61; c.Offset(1, 0)Loopset c &#61; Nothing
End Sub
【代码解析】
第2行代码获取A列最后数据行的行号。
第4行代码屏蔽合并单元格时的提示信息。
第5~11行代码循环处理数据行。
第6行代码中的MergeArea
返回合并单元格的Range对象&#xff0c;例如[B2].MergeArea.Address结果为$B$2:$B$6
。
第7~8行代码分别实现C列和D列的单元格合并。
第10行代码将下一个单元格赋值给变量c&#xff0c;注意[B2]的下一个单元格为[B7]&#xff0c;而不是[B3]。
第12行代码释放对象变量占用的系统资源。