我的工作表看起来像这样:
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
它只删除重复值,只保留一个值。它不是合法的。我不得不手动合并空白单元格。为什么呢?
答案 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列