[英]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),如果該值大於我左側的單元格,則突出顯示。
從而確定以下單元格:
使用絕對引用(單元格值> $ C $ 5應用於D5:F133)
條件將說,對於要突出顯示的每個單元格,如果該值大於單元格A1中的值,則突出顯示。
從而確定以下單元格:
要將代碼更改為使用絕對引用,只需將美元符號($)添加到所需的單元格地址即可,因此:
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.