【问题标题】:Finding and Selecting Duplicates Trouble Excel VBA查找和选择重复问题 Excel VBA
【发布时间】:2013-08-01 02:47:29
【问题描述】:

所以我有一个代码应该将我选择的字体更改为红色。我从 SQL 数据库中提取了两个表,并想从这些表中选择两列并突出显示所有重复项。但是,下面的代码仅突出显示了两列,并没有进行任何字体更改。当我说删除从 D11 到 D2000(或从 M11:M200)中的任何重复值并重写该值时,字体确实会发生变化。我怎样才能让它自动发生字体更改?

Sub Duplicates()
Dim Rng As Range
Set Rng = Application.Union(Range("Sheet1!D11:D2000"), Range("Sheet1!M11:M200"))
Rng.Select
With Selection 
    .FormatConditions.AddUniqueValues 
    .FormatConditions(Selection.FormatConditions.Count).SetFirstPriority 
    .FormatConditions(1).DupeUnique = xlDuplicate
End With 

With Selection.FormatConditions(1).Font 
    .Bold = True
    .Color = -16776961 
End With
End Sub

【问题讨论】:

    标签: sql-server vba excel duplicates


    【解决方案1】:

    我刚刚尝试了您的代码,它似乎可以工作。也许您需要在查询运行后刷新条件?您可能需要删除并重新添加条件。

    我在 thread 上发现了类似的帖子

    看起来这段代码会删除条件:

    Cells.FormatConditions.Delete
    

    【讨论】:

    • 我已经尝试了线程中的一些建议以及您的建议,但它仍然不起作用:(
    • 您使用的是哪个版本的 Excel?我正在使用 2010。我在 SQL 2012 表中创建了一些数据,设置了两个在电子表格上有表的连接。运行您的代码后,它会格式化重复项,当我修改数据并刷新外部数据时,它会自动更新格式。所以我无法重现您的问题。
    • 我也在使用 2010 和 SQL 2008……是的,这很奇怪,我不知道为什么它不起作用
    • 您是否还有其他冲突的条件格式?也许您可以从新的工作簿中尝试一下,看看是否有效?我已经看到工作簿可能会损坏或工作簿中的其他内容导致冲突的地方。
    • 我不这么认为.. 我确实使用了一个新的工作簿并尝试只导入两个随机表并运行代码,这很有效。但是我随后对其进行了编辑以使其成为我的代码,但它再次失败了......你愿意看看我的整个代码吗?
    【解决方案2】:

    您的代码也对我有用。您是否检查了工作表的“EnableFormatConditionsCalculation”?

    这是指向的解决方案; Microsoft Community

    导致;

    Solution for the auto refresh problem with conditional formatting in Excel 2007

    但似乎也是 2010 年的问题?这些帖子中还有其他一些回复,您可能会觉得有帮助。

    【讨论】:

    • 我实际上只是尝试过 - 在没有 VBA 的情况下对电子表格本身使用条件格式,我选择了整个表格并转到条件格式 - 色标 - 更多规则 - 重复时的格式,然后更改颜色和打好。但是,由于某种原因,没有突出显示明确的重复项 - 我确保检查空格。对这个问题有什么想法吗?
    • 结果发现尾随空格不知从何而来。智障
    • 哈哈,太好了。我最喜欢的是隐藏符号,例如从其他文档粘贴返回的移位。非常令人沮丧。我现在 TRIM(CLEAN()) 一切。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多