gpt4 book ai didi

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

转载 作者:行者123 更新时间:2023-12-04 21:00:45 30 4
gpt4 key购买 nike

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

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() 的功能添加了一些(可能)有用的旁注。方法

似乎它不会删除和移动行,而只是移动它们
至少这是我通过以下测试得出的结论

测试1:
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 获得相同的范围地址陈述

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

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

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

因此,最后两个语句不会将格式扩展到整个原始范围

关于excel - 在 Excel VBA 中,为什么删除范围中的重复条目会删除单元格背景颜色?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36976029/

30 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com