在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
语句中获得不同范围的地址,第二个是比第一个更短的一行
结果,最后两条语句不能将格式化扩展到整个原始范围