用于在同一行中合并多列中的单元格的宏

时间:2013-09-03 08:19:19

标签: excel excel-vba merge vba

我正在创建一种数据库,如果你愿意,我在一行中有多列需要合并,并且想知道是否可以用宏来做这件事。

为了使合并的单元数量更加困难,并不是一成不变的。 IE:

  1 A   B   C   MARY JO         50  main office     admin

  2 A   B   C   MARY JO         50  main office     admin

  3 A   B   C   MARY JO         50  main office     admin

  1 A   B   C   JOHN DOE        60  OTHER office    driver

  2 A   B   C   JOHN DOE        60  OTHER office    driver

合并行1-3和4-5是期望的结果。很难解释没有张贴图片的能力,但是A和Z列以后想要UNMERGED,因为每一行都有这些列中显示的信息。

现在看起来如何:

期望的最终结果:

3 个答案:

答案 0 :(得分:1)

尝试这样的事情:

Private Sub MergeTheseCellsToMakeSomethingLikeADatabase()
    'Crucial Line Below
    Application.DisplayAlerts = False
    Dim i%
    With ThisWorkbook.Sheets("Sheet1")
       For i = .UsedRange.Rows.Count to 2 Step -1
          If .Cells(i,4).Value = .Cells(i-1,4).Value Then
             .Range(.Cells(i,2),.Cells(i-1,2)).Merge
             .Range(.Cells(i,3),.Cells(i-1,3)).Merge
             .... 
             'Do this for all rows that are relevant or just have another for loop to cycle
             'Through the rows that you want merged      
          End If
       Next
    End With
End Sub

答案 1 :(得分:0)

为什么不用另一个工作表上的公式来创建所需的结果 - 除非您尝试自动化整个过程,否则可能不需要宏。如果这只是一次性的,那么宏肯定是矫枉过正的。

使用所需的单元格组合创建coluumns,只需通过以下方法创建aformula:

= A1& A3等

&安培;用来代替+将文本单元连接在一起(连接)

将每个列的formuala复制下来并完成......几乎......

现在您可以担心合并行

答案 2 :(得分:0)

您是否尝试删除重复的行?如果是这样突出显示您的数据范围,然后从菜单中选择数据。在“数据”功能区上,转到“排序和筛选”部分,然后单击“高级”。在高级过滤器对话框中选择“复制到另一个位置”,确保列表范围已选择您的数据,在复制到框中选择您希望过滤列表的位置,然后在复选框中选中唯一的记录。单击“确定”并完成工作。