gpt4 book ai didi

c# - 条件格式隐藏文本

转载 作者:太空宇宙 更新时间:2023-11-03 10:34:45 25 4
gpt4 key购买 nike

我有一个 Excel 工作表,我正在从一个用 C# 编写的加载项中添加条件格式。

条件触发正常,我可以更改填充颜色,但文本总是被隐藏。

如果我从格式中删除填充颜色,应用格式后文本仍会隐藏。

如果我删除所有格式并仅应用条件而不更改任何格式,文本仍然隐藏。

当格​​式条件不再有效时,文本将按您预期的方式显示。

单元格值肯定设置正确。

为什么会这样?

C#代码如下:

var disabledFormat = "IF(blah blah...),FALSE,TRUE)";
var formatCondition = (Excel.FormatCondition)cell.FormatConditions.Add(
Excel.XlFormatConditionType.xlExpression,
Type.Missing, disabledFormat);
formatCondition.Font.Color = ColorTranslator.FromHtml("#C0C0C0");
formatCondition.Interior.Color = ColorTranslator.FromHtml("#F0F0F0");

[编辑]

我已经尝试将颜色更改为白色、黑色、红色等,但在应用条件格式时它仍然不可见。

[/编辑]

[编辑2]

根据要求完整禁用格式字符串:(代码看起来并没有完全链接它,因为它跨越了几个类,我只是试图填补空白以提供帮助:$)

const string FORMAT_DISABLED = "=IF(LEFT(MID('{2}'!{0},FIND(\"|\",'{2}'!{0},FIND(\"|\",'{2}'!{0})+1)+1,999),LEN(INDIRECT(\"'$lookup_grading'!\"&ADDRESS({1},1))))=INDIRECT(\"'$lookup_grading'!\"&ADDRESS({1},1)),FALSE,TRUE)";

var dropdownCell = "Q5";

var disabledFormat = string.Format(FORMAT_DISABLED, cellName, dropdownCell, controlSheetName);

决议:

=IF(LEFT(MID('$controls_Distribution Grid'!W19,FIND("|",'$controls_Distribution Grid'!W19,FIND("|",'$controls_Distribution Grid'!W19)+1)+1,999),LEN(INDIRECT("'$lookup_grading'!"&ADDRESS(Q5,1))))=INDIRECT("'$lookup_grading'!"&ADDRESS(Q5,1)),FALSE,TRUE)

为了进一步澄清,它的作用是在另一个具有相同地址的工作表的单元格中查找一个值,从该单元格中的格式化字符串中获取一个值,并将其与所选项目指示的值进行比较在下拉列表中。如果存在匹配项,则返回 TRUE

同样的公式也用于为单元格值返回 10,所以我知道这可以正常工作。

[/Edit2]

[编辑3]

我已将问题缩小到 NumberFormat,即 "a";;;。当条件格式没有触发时,这会正确显示 a(或应用了 Webdings 的勾号)。但是当条件格式触发时, NumberFormat 的输出不会出现。我想不出为什么这是故意的,所以我猜这是 Excel 中的一个错误,但我会做一些谷歌搜索来检查

[/Edit3]

这是返回 1 或 0 的单元格中的公式(希望它足够清楚!):

=IF(
LEFT(
MID('$controls_Distribution Grid'!$V$19,
FIND("|",'$controls_Distribution Grid'!$V$19,
FIND("|",'$controls_Distribution Grid'!$V$19)+1
)+1,999),
LEN(INDIRECT("'$lookup_grading'!"&ADDRESS(Q5,1)))
)=INDIRECT("'$lookup_grading'!"&ADDRESS(Q5,1)),
1,0)

最佳答案

数字格式的定义是用;分隔的四个字段

<POSITIVE>;<NEGATIVE>;<ZERO>;<TEXT>

您的数字格式 "a";;; 表示如果值为正数则显示 a ,如果为零、负数或文本则不显示任何内容。

您的公式返回 TRUEFALSE,它们被视为文本,因此当您的条件触发时,格式会隐藏单元格值。

我建议您更改您的公式以返回 10 然后将显示 a 或什么都不显示

关于c# - 条件格式隐藏文本,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28194945/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com