如何在excel中的同一行上对齐一定数量的列

时间:2016-06-08 09:13:30

标签: html css vba excel-vba macros

Picture example of aligning needed

您好,我需要帮助在同一行上对齐重复项,但是将它扩展到这些主列每一侧的几列上。因此,例如必须比较A和K以在A& A的每一侧上的相同行BUT列上对齐。 K必须与它一起移动,例如,列A-I和K-Q必须一起移动以根据col A和K中的重复对齐。我想要的示例如附图所示。

下面的代码中没有包含在每个重新排列的重复组之后插入一行的代码...请帮助您在每组重复之后使用哪些代码插入空行? - 以上图为代表。

代码如下:这会有效吗?

Sub HighlightDups()
    Dim i, LastRowA, LastRowB
    LastRowA = Range("A" & Rows.Count).End(xlUp).Row
    LastRowB = Range("K" & Rows.Count).End(xlUp).Row
    Columns("A:I").Interior.ColorIndex = xlNone
    Columns("K:Q").Interior.ColorIndex = xlNone
    For i = 1 To LastRowA
        If Application.CountIf(Range("K:Q"), Cells(i, "A")) > 0 Then
            Cells(i, "A").Interior.ColorIndex = 36
        End If
    Next
    For i = 1 To LastRowB
        If Application.CountIf(Range("A:I"), Cells(i, "K")) > 0 Then
            Cells(i, "K").Interior.ColorIndex = 36
        End If
    Next
End Sub

1 个答案:

答案 0 :(得分:0)

尝试以下代码

Sub TEST()
    I = 1
    While I <= Cells(Rows.Count, 1).End(xlUp).Row And I <= Cells(Rows.Count, 2).End(xlUp).Row
        If Range("A" & I) > Range("B" & I) Then
            Range("A" & I).Insert xlShiftDown
        ElseIf Range("A" & I) < Range("B" & I) Then
            Range("B" & I).Insert xlShiftDown
        Else
            If I > 1 Then
                If Range("A" & I - 1) <> Range("A" & I) And Range("B" & I - 1) <> Range("B" & I) Then
                    Range("A" & I, "B" & I).Insert xlShiftDown
                    I = I + 1
                End If
            End If
        End If
        I = I + 1
    Wend
End Sub

关于颜色,您可以使用条件格式仅为非空白颜色着色