0

如果您愿意,我正在创建一种数据库,并且我在一行中有多个列需要合并,并且想知道是否可以使用宏来执行此操作。

为了使合并变得更加困难,要合并的单元格数量不是恒定的。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,因为每一行都有这些列中显示的信息。

现在的样子:

期望的最终结果:

4

3 回答 3

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
于 2013-11-05T15:43:40.400 回答
0

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

只需通过 creatign aformula 来创建具有所需单元格组合的列,例如:

=A1&A3 等

& 用于代替 + 将文本单元格连接在一起(连接)

为每一列复制该公式并完成......几乎......

现在您可以担心合并行

翅膀

于 2013-09-03T08:29:55.663 回答
0

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

于 2013-09-03T08:41:40.543 回答