在Excel VBA中,为什么删除范围中的重复条目将删除单元格背景颜色?

我的工作表对所有单元格都有灰色。 我在列中select范围并删除重复项。 它按预期删除重复项,但也会使重复单元格的颜色为默认白色。 我尝试了多个例子,但看起来像他们用默认的白色完成,可能这个问题从来没有发生过。 我可以编程设置颜色回到原来的,但我不想这样做之前知道为什么发生这种方式。 以下是我的代码

LastRow = GetLastRow(SheetName, ConsolidatedColumn) 'ConsolidatedColumn is "P" WS.Range(ConsolidatedColumn & "1:" & ConsolidatedColumn & LastRow) _ .RemoveDuplicates Columns:=Array(1), Header:=xlYes 

有人可以解释为什么发生这种情况?

尝试这个

 With Worksheets(SheetName).Range(ConsolidatedColumn & "1:" & ConsolidatedColumn & LastRow) .RemoveDuplicates Columns:=Array(1), Header:=xlYes .Resize(1, 1).Copy .PasteSpecial xlPasteFormats End With 

除此之外,我还会抛出一些关于RemoveDuplicates()方法function的(可能)有用的旁注

它似乎并没有删除和移动行,但只是改变他们至less这是我通过以下testing

testing1:

 With Worksheets(SheetName).Range(ConsolidatedColumn & "1:" & ConsolidatedColumn & LastRow) MsgBox .Address .RemoveDuplicates Columns:=Array(1), Header:=xlYes MsgBox .Address .Resize(1, 1).Copy .PasteSpecial xlPasteFormats End With 

从两个MsgBox语句中获得相同的范围地址

最后两个语句将格式化扩展到整个原始范围

testing2:

 With Worksheets(SheetName).Range(ConsolidatedColumn & "1:" & ConsolidatedColumn & LastRow) MsgBox .Address .Rows(2).Delete MsgBox .Address .Resize(1, 1).Copy .PasteSpecial xlPasteFormats End With 

从两个MsgBox语句中获得不同范围的地址,第二个是比第一个更短的一行

结果,最后两条语句不能将格式化扩展到整个原始范围