-7
A
回答
0
- 合并单元格在电子表格是指采取两个或更多个细胞和 构建单个细胞了出来。当您合并两个或更多个相邻的水平或垂直单元格时,这些单元格会成为一个跨多列或多行显示的较大的单元格。 合并多个单元格时,合并的单元格中只显示一个单元格的内容(从左到右语言的左上角的 单元格或从右到左的语言的右上单元格的 )。 您合并的其他单元格的内容将被删除。欲了解更多详情请 通过这个MSDN文章Merge and unmerge cells
简单的VBA代码之前合并单元格
Sub merg_exp_1()
ActiveSheet.Range("A1:C10").Merge
End Sub
现在让我们来看看,如果我们合并的行会发生什么。之前和运行程序显示后
Sub Merge_Rows() Dim rng As Range Dim rrow As Range Dim rCL As Range Dim out As String Dim dlmt As String dlmt = "," Set rng = ActiveSheet.Range("A1:C5") For Each rrow In rng.Rows out = "" For Each rCL In rrow.Cells If rCL.Value <> "" Then out = out & rCL.Value & dlmt End If Next rCL Application.DisplayAlerts = False rrow.Merge Application.DisplayAlerts = True If Len(rrow.Cells(1).Value) > 0 Then rrow.Cells(1).Value = Left(out, Len(out) - 1) End If Next rrow End Sub
接下来,我们可以尝试通过柱方法合并。在这里,我们也尝试 一列,即列B看到效果。示例代码如下 。
Sub Merge_col_exp() Dim cnum As Integer Dim rng As Range Dim str As String For i = ActiveSheet.UsedRange.Rows.Count To 1 Step -1 cnum = Cells(i, 1).MergeArea.Count Set rng = Range(Cells(i, 2), Cells(i - cnum + 1, 2)) ' only to demonstrate working in 2nd column For Each cl In rng If Not IsEmpty(cl) Then str = str + "," + cl Next If str <> "" Then str = Right(str, Len(str) - 1) Application.DisplayAlerts = False rng.Merge rng = str Application.DisplayAlerts = True str = "" i = i - cnum + 1 Next i End Sub
样本数据:该 锻炼,虽然一般的示例代码被测试只有一个情况, 它如下。你可以看到这不符合你的目标。
之前和运行该程序后的样本数据中示出。你可以看到这更接近你的要求。您可以通过在主动使用的范围中查找最后一列来扩展此程序的功能。扩展程序功能以覆盖最后一列。
+0
这项工作非常接近我的要求。我刚才问我如何开始编码。你给了我很多。感谢您的关注,@skkakkar –
+0
@Ylmz_eng我很高兴我的文章对你有帮助。不要因倒票而心灰意冷。当我来到这里时,我也面临着类似的情况,并努力达到现在的水平。 – skkakkar
相关问题
- 1. 合并行与普通列
- 2. MySQL查询从A中选择行并将B中的多行组合起来
- 3. MySQL将行合并到列
- 4. 向下合并列A和B
- 5. 合并两行合并到一列
- 6. PHP MySQL的合并与行同列值
- 7. 错误的合并,而不是合并A到B我合并B到A在GIT实验室
- 8. 在表A上执行合并(Upsert)到表B
- 9. 将多行的值合并为一行
- 10. 将来自多行的数据合并为一行,多列
- 11. 合并的两行
- 12. 如何将数据框中的行与dplyr组合并合并其他数据?
- 13. 行合并2008
- 14. 行合并
- 15. 合并行
- 16. 合并表行
- 17. VBA合并行
- 18. google.visualisation.DataTable()合并行
- 19. google.visualisation.DataTable()行合并
- 20. 如何将IDictionary中的计数行与合并行结合使用?
- 21. SQL与特定匹配列合并行
- 22. 基于行合并列
- 23. 按列合并多行
- 24. 基于列合并行linux
- 25. awk根据列合并行
- 26. 合并相似的行并计数
- 27. 将多行合并为1
- 28. 阵列合并或联合发行
- 29. Oracle SQL:将行合并为单行
- 30. 如何将2行合并为1行
你试过了什么?通过使用宏记录器手动执行此操作。然后看看代码,并[删除'.Select'](http://stackoverflow.com/questions/10714251/how-to-avoid-using-select-in-excel-vba-macros),以及你应该开始到达那里。至于计算合并单元格的数量,您需要查看[各种方法](http://stackoverflow.com/a/22076713/4650297)。 – BruceWayne
欢迎来到SO。请阅读[如何提问](http://stackoverflow.com/help/how-to-ask)以获得最有效的帮助。既然你是第一天,我不想让你灰心,我会通过提供一些例子和相关的代码来帮助你。请理解,SO不是我的服务代码。你必须研究你的话题。如果您在SO的问题部分提供搜索词〜[excel-vba] Merge Cells〜,那么有721个结果会提供丰富的信息,涵盖各种情况。希望你付出努力,成为重要的贡献成员。 – skkakkar
感谢您的建议。询问其他问题时我会注意。 –