簡體   English   中英

將此條件格式轉換為C#

[英]Converting this conditional formatting to c#

我需要將這種確切的條件格式轉換為c#。

在此處輸入圖片說明

我嘗試使用下面的代碼。 但是由於C5不在范圍內,因此無法正常工作。

Range extendedRange = activeWorksheet.get_Range("D5", oOpt).get_Resize(129, 3);
FormatConditions fcs = extendedRange.FormatConditions;
    FormatCondition fc = (FormatCondition)fcs.Add(XlFormatConditionType.xlCellValue, XlFormatConditionOperator.xlGreater, "=C5", oOpt, oOpt,
                                               oOpt, oOpt, oOpt);

                Interior interior = fc.Interior;
                interior.Color = ColorTranslator.ToOle(Color.Red);

我正在使用interop.excel 12.0.0.0。 有人可以幫我解決這個問題嗎? 提前致謝

編輯:我希望這是一個現實的參考。 因此,在excel條件格式中顯示的內容正是我想要的。 但是,當我嘗試使用我的代碼時,公式更改為D5而不是C5。 我認為可能是因為我的范圍內沒有C5電池。 我正在使用Visual Studio 2008 SP1。

您的代碼對我有用。 它給您一個錯誤信息嗎?

可能的原因可能是您使用的是相對單元格引用而不是絕對引用。

使用相對引用,您輸入的公式將應用於所選內容的第一個單元格(通常是左上角的單元格)。 然后,對於要應用的范圍中的每個其他單元格,修改單元格引用。 因此,如果公式引用要突出顯示的范圍中第一個單元格左側的單元格,則它將引用要突出顯示的每個單元格左側的單元格。

使用絕對引用,您輸入的公式將在您鍵入時完全應用。

例如

帶有相對參考(單元格值> C5應用於D5:F133)

基本上,您要說的是要突出顯示的每個單元格(例如D5:F133),如果該值大於我左側的單元格,則突出顯示。

從而確定以下單元格:

  • 針對C5檢查D5
  • 根據C6檢查D6
  • 針對C7檢查D7
  • 針對D5檢查E5
  • 針對D6檢查E6
  • 等等....

使用絕對引用(單元格值> $ C $ 5應用於D5:F133)

條件將說,對於要突出顯示的每個單元格,如果該值大於單元格A1中的值,則突出顯示。

從而確定以下單元格:

  • 針對C5檢查D5
  • 根據C5檢查D6
  • 針對C5檢查D7
  • 針對C5檢查E5
  • 針對C5檢查E6
  • 等等....

要將代碼更改為使用絕對引用,只需將美元符號($)添加到所需的單元格地址即可,因此:

Range extendedRange = activeWorksheet.get_Range("D5", oOpt).get_Resize(129, 3);
FormatConditions fcs = extendedRange.FormatConditions;
FormatCondition fc = (FormatCondition)fcs.Add(XlFormatConditionType.xlCellValue,
    XlFormatConditionOperator.xlGreater,
    "=$C$5",
    oOpt,
    oOpt,
    oOpt,
    oOpt,
    oOpt);

Interior interior = fc.Interior;
interior.Color = ColorTranslator.ToOle(Color.Red);

請注意,將$符號添加到"=$C$5"

如果這樣做沒有幫助,您可能需要更好地解釋正在發生的事情。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM