在列中合并具有重复值的单元格而不更改相邻列

时间:2014-05-29 14:07:26

标签: vba excel-vba excel

我的工作表看起来像这样:

   COL A   COL B           COL C
     

PHGDCB01 HGCBTA01 PHHG.HGCRUNT.RUNSCH.ESDS

     

PHGDCB01 HGCBTA01 PHHG.HGERORM.ERRMSG.KSDS

     

PHGDCB01 HGCBTA01 PHHG.HGCONTM.CONTRACT.KSDS

     

PHGDCB01 HGCBTA01 PHHG.HGBRANM.BRANCH.KSDS

     

PHGDCB01 HGCBTA01 PHHG.HGBACUM.BRANCH.ACCUM.KSDS

     

PHGDCB01 HGCBTA01 PHHG.HGCONTT.CB.TXN.KSDS

     

PHGDCB01 HGCBTA01 PHHG.HGCONTT.CB.TXN.ALTX.PATH

我想要的是这样的东西

        PHGDCB01   HGCBTA01   PHHG.HGCRUNT.RUNSCH.ESDS

                              PHHG.HGERORM.ERRMSG.KSDS
                              PHHG.HGCONTM.CONTRACT.KSDS
                              PHHG.HGBRANM.BRANCH.KSDS
                              PHHG.HGBACUM.BRANCH.ACCUM.KSDS
                              PHHG.HGCONTT.CB.TXN.KSDS

这是我试图编写的代码:

Sub Macro3()        
    For MY_ROWS = Range("B65536").End(xlUp).Row To 2 Step -1
        If Range("A" & MY_ROWS).Value = Range("A" & MY_ROWS - 1).Value Then
            Range("A" & MY_ROWS).ClearContents
        End If
    Next MY_ROWS
End sub

它只删除重复值,只保留一个值。它不是合法的。我不得不手动合并空白单元格。为什么呢?

2 个答案:

答案 0 :(得分:0)

Clearcontents不会做任何合并。你需要在适当的范围内调用.Merge:

Range("A1:A5").Merge

您需要根据A列中值的变化来确定A1:A5部分。希望这有帮助!

答案 1 :(得分:0)

以下代码将合并A列:

Sub Macro3()
    For MY_ROWS = Range("B65536").End(xlUp).Row To 2 Step -1
    If MY_ROWS = 2 And Range("A" & MY_ROWS).Value = Range("A" & MY_ROWS - 1).Value Then
    Range("A" & MY_ROWS).ClearContents
    Range("A" & MY_ROWS + i & ":A" & MY_ROWS - 1).Merge
    End If
        If Range("A" & MY_ROWS).Value = Range("A" & MY_ROWS - 1).Value Then
            i = i + 1
            Range("A" & MY_ROWS).ClearContents
        Else:
            Range("A" & MY_ROWS + i & ":A" & MY_ROWS).Merge
            i = 0
        End If
    Next MY_ROWS

End Sub

您应该能够使用相同的方法找出B列