Excel VBA条件格式未执行

Posted

技术标签:

【中文标题】Excel VBA条件格式未执行【英文标题】:Excel VBA Conditional Formatting not executing 【发布时间】:2012-01-14 15:57:17 【问题描述】:

这很奇怪。我正在从 MS Access 2003 VBA 创建一个 Excel 2003 电子表格,并且编码包括条件格式:如果单元格值大于 [a value],则为红色,如果小于 [a value],则为绿色。

即使在生成电子表格时成功创建了 CF 公式,但无论值如何,所有颜色都是绿色的。如果我手动将原始值输入到单元格中,它将触发 CF 并且它会正确显示,但否则它只会以相同(错误)的颜色出现。

我曾尝试执行application.calculateCalculateFullCalculateFullRebuild;但这无济于事。我试过worksheet.calculate。没有。我尝试将电子表格的所有内容复制到一个新的电子表格中。没有。我尝试为工作表中的所有单元格指定数字格式。没有。

似乎想要重新计算,但我做不到。

我用谷歌搜索了这个,但找不到类似的东西,这让我觉得我错过了一些基本的东西。

【问题讨论】:

您知道“ 是的!这是我的问题中的一个错字... 【参考方案1】:

听起来您的数据是数字,但 Excel 将其视为文本。以下是解决问题的方法:

    在旁边找到一些空白单元格并输入数字 0。 复制该单元格 (Ctrl-C)。 选择有问题的数据单元格并使用以下设置进行选择性粘贴:从“粘贴”部分选择值,从“操作”部分选择添加,点击确定。

这是通过向每个单元格添加零来实现的,这不会改变它们的值,但会强制 Excel 将它们视为数字。

【讨论】:

嗨,瑞秋,你的想法成功了!谢谢!现在我需要弄清楚如何将其合并到我的 VBA 代码中。或者,也许还有另一种方法可以让 excel 将这些视为数值。有任何想法吗?我会四处寻找那个特别的东西 - 我不能是唯一一个遇到这个问题的人。 您究竟是如何将数据导入 Excel 的?由于某种原因,数值被解释为文本。 我正在使用 MS Access CopyFromRecord 方法。据我通过谷歌搜索得知,它从 Excel 中删除了格式。 我让它工作了!在分配条件格式的代码部分中,我添加了一行将单元格值设置为 .value + 0;然后它工作了!!! 谢谢你的聪明主意!

以上是关于Excel VBA条件格式未执行的主要内容,如果未能解决你的问题,请参考以下文章

Excel VBA:编辑新行的现有条件格式规则

如何通过VBA代码获取Excel 2012条件格式的色标制作的颜色

如何使用 vba 在 Excel 2007 中找到条件格式单元格的填充颜色值?

Excel VBA 条件格式与函数

Excel VBA 用户定义函数,用于计算具有条件格式的单元格

excel中怎样用vba使单元格在特定条件下才可以编辑?