2013-07-31 28 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