用于合并 Excel 中与其他列中的信息匹配的行的单元格的宏

Posted

技术标签:

【中文标题】用于合并 Excel 中与其他列中的信息匹配的行的单元格的宏【英文标题】:Macro to merge cells in Excel for rows in which information in other columns matches 【发布时间】:2013-12-31 01:57:52 【问题描述】:

我是一名编程新手。小时候,我通过查看网站上的源代码并使用它来自学 html 和 CSS,直到我弄清楚它为什么起作用,但我真的没有任何其他类型的编码经验。但是,我能从能够看到执行我正在尝试做的事情的代码并剖析它(以及来自善良和博学的人的解释总是有帮助的)中学到最好的东西。

我很确定我可以使用 Excel 宏来做某事,但我不知道如何完成它。 (我认为宏是正确的选择,因为它不是一次性的,它是我必须定期应用的东西。我的问题与这个非常相似:Macro for merging cells

但是,我的目标稍微复杂一些。我想做同样的事情,只检查是否有多个相同的单元格。因此,本质上,如果 A、B、C、D、E、F 和 O 列中的多行相同...那么只有这样,我才想合并 P 列中这些行的单元格。

我想从这个开始:

对此:

就像我说的,我对 VBA 知之甚少。我尝试了对我来说似乎合乎逻辑的方法,即从链接的帖子中获取答案中的代码,但复制“lastRow = [B2].End(xlDown).Row”位以应用于我需要检查的每一列。对于那些知道自己在做什么的人来说,我确信这是显而易见的原因,但那没有用。

关于如何编辑此代码以完成我想要做的事情的任何提示,或者一个愿意编写它以便我可以阅读和反向工程的好心人?如果我所说的任何内容不清楚,请告诉我,我非常感谢任何可以提供帮助的人。

【问题讨论】:

【参考方案1】:

应该很容易...

打开你的文件并点击 ALT+F11 打开 VBE。右键单击 VBA 项目窗口中的任意位置并插入 module(*标准模块,not 类,not 用户窗体)

复制粘贴下面的代码

Sub Main()

    Dim i As Long
    Dim j As Long

    Dim sameRows As Boolean
    sameRows = True

    For i = 1 To Range("A" & Rows.Count).End(xlUp).Row
        For j = 1 To 7
            If StrComp(Cells(i, j), Cells(i + 1, j), vbTextCompare) Then
                sameRows = False
            End If
        Next j

        If sameRows Then
            Range(Cells(i, 8), Cells(i + 1, 8)).Merge
        End If

        sameRows = True
    Next i

End Sub

点击 F5 运行宏,它应该为你合并单元格

记住条件是行必须以垂直顺序彼此相邻。

运行宏之前

之后

【讨论】:

非常感谢!这段代码对我来说比我链接的代码更符合逻辑,并且完成了我需要它做的事情。【参考方案2】:

更好的答案,请给我信用,这将合并单元格以创建一个“框”或您希望对合并单元格进行的任何其他操作。

热键是Control+M

开始代码:

Sub Mergethecells()
'
' Mergethecells Macro
' merge cells
'
' Keyboard Shortcut: Ctrl+m
'
    With Selection
        .HorizontalAlignment = xlGeneral
        .VerticalAlignment = xlBottom
        .WrapText = False
        .Orientation = 0
        .AddIndent = False
        .IndentLevel = 0
        .ShrinkToFit = False
        .ReadingOrder = xlContext
        .MergeCells = True
    End With
End Sub

【讨论】:

以上是关于用于合并 Excel 中与其他列中的信息匹配的行的单元格的宏的主要内容,如果未能解决你的问题,请参考以下文章

根据列中的匹配数据合并两个 Excel 表

将excel一列中重复项合并,同时对应行的内容自动合并

Pandas 在键中与 NaN 合并

Excel - 合并具有共同值的行并将差异连接在一列中

请问如何获得GridView选中行的每一列的信息?

JSP 如何合并table中一列中内容相同的行??