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.calculate
、CalculateFull
、CalculateFullRebuild
;但这无济于事。我试过worksheet.calculate
。没有。我尝试将电子表格的所有内容复制到一个新的电子表格中。没有。我尝试为工作表中的所有单元格指定数字格式。没有。
似乎想要重新计算,但我做不到。
我用谷歌搜索了这个,但找不到类似的东西,这让我觉得我错过了一些基本的东西。
【问题讨论】:
您知道“ 是的!这是我的问题中的一个错字... 【参考方案1】:听起来您的数据是数字,但 Excel 将其视为文本。以下是解决问题的方法:
-
在旁边找到一些空白单元格并输入数字 0。
复制该单元格 (Ctrl-C)。
选择有问题的数据单元格并使用以下设置进行选择性粘贴:从“粘贴”部分选择值,从“操作”部分选择添加,点击确定。
这是通过向每个单元格添加零来实现的,这不会改变它们的值,但会强制 Excel 将它们视为数字。
【讨论】:
嗨,瑞秋,你的想法成功了!谢谢!现在我需要弄清楚如何将其合并到我的 VBA 代码中。或者,也许还有另一种方法可以让 excel 将这些视为数值。有任何想法吗?我会四处寻找那个特别的东西 - 我不能是唯一一个遇到这个问题的人。 您究竟是如何将数据导入 Excel 的?由于某种原因,数值被解释为文本。 我正在使用 MS Access CopyFromRecord 方法。据我通过谷歌搜索得知,它从 Excel 中删除了格式。 我让它工作了!在分配条件格式的代码部分中,我添加了一行将单元格值设置为 .value + 0;然后它工作了!!! 谢谢你的聪明主意!以上是关于Excel VBA条件格式未执行的主要内容,如果未能解决你的问题,请参考以下文章
如何通过VBA代码获取Excel 2012条件格式的色标制作的颜色
如何使用 vba 在 Excel 2007 中找到条件格式单元格的填充颜色值?