2015-06-09 74 views

回答

3

我在Mrexcel的post中發現了一個屬性Range.DisplayFormat.Interior.Color。使用這個屬性,我能夠獲得條件格式單元格的顏色,並將其用於其他行。 Catch是,它只適用於2010年以後的Excel。我有Excel 2010,所以它爲我工作。 這裏是確切的代碼 -

For i = rowStart To rowEnd 
    For j = columnStart To columnEnd 
     Cells(i, j).Interior.Color = Cells(i, 4).DisplayFormat.Interior.Color 
    Next 
Next 
0

你可以用標準的條件格式菜單來做到這一點,不需要VBA。您可以選擇指定您自己的公式的選項,並且您可以引用除希望突出顯示的單元格之外的單元格(用'$'鎖定列)。

Background Reading

+0

那我可以對「非色標」在這裏我提供特定的格式(背景,邊框或字體顏色)自己做的。在這裏我想用Excel內置的色標。 –

+0

夠公平的。你可以用5種顏色梯度手動操作(例如,頂部20%的人口是深紅色,接下來的20%是更紅的,等等),但是如果你知道VBA,可能更容易在這個階段使用它。 –

3

你不需要VBA做到這一點,真的。

這裏要記住的一件事是,您將無法使用單個條件格式設置規則實現所需的行爲;您必須爲每個基於銷售的行顏色定義分別制定規則。第二件事:我發現在規則中使用命名範圍代替常規公式,在Excel中實現所需的條件格式化行爲要容易得多。

考慮到這些問題,請按照以下步驟創建命名範圍,然後創建條件格式設置規則。

  1. 首先,選擇你的片(最上一行)
  2. 下一頁銷量第一小區,給小區的名稱,「銷售」。按Ctl + F3執行此操作,或從功能區中選擇Formulas - >Name Manager。然後選擇New..。在Name:中輸入SALES並在Refers to:中輸入=$XN其中X是第一個銷售單元的列,N是行號。點擊Enter
  3. 現在選擇整個小區範圍要表現出這種行爲
  4. 選擇Home - >Conditional Formatting - >New Rule...
  5. 選擇Use a Formula to Determine Which Cells to Format並輸入=SALES=number其中編號是銷售數量要觸發顏色
  6. 選擇FormatFill選項卡。現在您需要決定您選擇的銷售號碼的背景顏色。您還可以選擇其他格式選項,如字體顏色等。
  7. 點擊確定,確定,確定。對每個不同的銷售數字/顏色組合重複步驟3到6。如果您想爲「所有銷售少於X」的顏色,在您的規則中,您將輸入=SALES<number(<是「小於」;您也可以執行< =,這是「小於或等於」)。如果希望規則在兩個數字之間發生,則可以執行=AND(SALES<=CEILING, SALES>=FLOOR),其中上限和下限是上限和下限。如果你想爲「所有銷售大於X」的顏色,你可以做=SALES>number

編輯:

爲了讓您的輸入條件公式更容易一點,你可以使用「停止如果真」功能。轉到HomeConditional FormattingManage Rules,並在下拉菜單中選擇This Worksheet。現在您將看到適用於您的工作表的所有規則列表,並且每條規則右側會出現「如果爲True」複選框。

對於每一行顏色規則,請勾選「如果True True」複選框。現在,你的公式可以是這樣的(只是舉例):

  • =Sales>25的綠色規則
  • =Sales>10爲黃色規則
  • =Sales>0爲紅規則

等,而不是像這樣:

  • =AND(Sales>0,Sales<=10)紅色規則
  • =AND(Sales>10,Sales<=25)爲黃色規則
  • =Sales>25的綠色規則

Stop If True箱意味着一旦格式化規則被應用於電池,該電池將不再基於任何其他規則格式化適用於它。請注意,這意味着在使用Stop If True時,規則的順序非常重要。

+0

我想我需要以更好的方式表達我的問題,我需要它爲Excel提供的「色彩比例」選項。我不想自己指定顏色。感謝這個答案,真正瞭解如何使用命名範圍進行條件格式化。去練習:) –

+0

好的,我誤解了。內置色標選項無法做到這一點。你必須自己動手使用VBA。我當然不知道你的使用案例,但在我看來,以上述方式選擇自己的顏色會好得多,而不是試圖用Excel的色階功能來處理相對引用(它只是簡單地說,沒有做到這一點)。 –

+0

@GauravSinghal可能最好的方法就是爲您的工作表編寫一個事件,在重新計算工作表時,將銷售列的顏色應用於範圍的行。不幸的是,我今天沒有時間爲你編寫代碼,但如果你知道VBA,那應該足以讓你開始。如果沒有,學習的時間。 –

4

如果我的理解是否正確我一直纏鬥與同樣的問題。即根據一列中的值對整行進行格式化,其中的值已通過Excel的色階進行格式化。

我發現這真的可笑簡單的解決方法,涉及到複製你的顏色縮放細胞轉化爲文字,然後返回到Excel中後,你可以用任何你想要的值,而不改變文件格式,刪除的值,並替換它們:

https://superuser.com/questions/973921/copy-conditional-formatting-3-color-scheme-to-another-tab/973974#973974?newreg=fc5ca6d04a5a406fa39cd4796b6a539e

所有信用卡用戶Raystafarian

+1

誰投了票,你能解釋一下原因嗎?對於我問的問題,這似乎是一個很好的非VBA解決方案。 –