2013-07-31 29 views
0

所以我有一个代码,应该将我选择的字体更改为红色。我从SQL数据库中拖出了两个表,并希望从这些表中选择两列,并突出显示所有重复项。但是,下面的代码只会突出显示两列,并且不会进行任何字体更改。当我的字体确实发生变化时,比如从D11到D2000(或从M11:M200)删除任何重复的值并重写该值。我怎样才能使它自动发生字体改变?查找和选择重复问题Excel VBA

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 

回答

0

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

我发现了一个类似的帖子在这个thread

貌似这个代码将删除条件:

Cells.FormatConditions.Delete 
+0

我已经尝试了一些来自线程的建议以及您的建议,但它仍然不会工作:( – euge1220

+0

您使用的是哪个版本的Excel?我正在与2010年一起工作。 SQL 2012表,在电子表格中设置了两个连接表,在运行你的代码后,它将格式化重复项,当我修改数据并刷新外部数据时,它会自动更新格式,所以我无法重新创建你的问题。 –

+0

即时通讯使用2010以及SQL 2008 ...是啊多数民众赞成在很奇怪,我不明白为什么它不工作 – euge1220

0

你的代码工作对我来说太。您是否为工作表检查了“EnableFormatConditionsCalculation”?

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

这导致;

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

,但似乎是一个问题,2010年呢?在这些帖子中还有其他几个回复,您可能会发现有帮助。

+0

我其实只是试过 - 在没有VBA的电子表格上使用条件格式,我选择了整个表格,并进行条件格式化 - 颜色比例 - 更多规则 - 重复时格式化,然后更改颜色并打好。然而,由于某些原因,清晰的重复没有突出 - 我一定要检查空格。关于这个问题的任何想法? – euge1220

+0

事实证明,有从哪里来的尾随空格。 im迟钝 – euge1220

+0

哈哈,太好了。我最喜欢的是隐藏的符号,例如从其他文档粘贴换档返回。非常令人沮丧。我现在TRIM(CLEAN())一切。 – MakeCents