Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/vba/15.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/excel/25.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Vba Can';t计算COUNTIF函数的条件格式_Vba_Excel_Conditional Formatting - Fatal编程技术网

Vba Can';t计算COUNTIF函数的条件格式

Vba Can';t计算COUNTIF函数的条件格式,vba,excel,conditional-formatting,Vba,Excel,Conditional Formatting,在VBA中检查条件格式是否等于true时遇到问题。格式设置在电子表格上正常工作并更改单元格颜色,但VBA显示在使用COUNTIF函数时未应用任何条件 在范围内的每个单元格上,我设置了三个条件: 1: =WEEKDAY(DATE($B$4,$A$5,$C$4),2)>5 - Changes colour if the day is a weekend (light blue) 2: =COUNTIF($AL:$AL,DATE($B$4,$A$5,$C$4))>0 - Checks a

在VBA中检查条件格式是否等于true时遇到问题。格式设置在电子表格上正常工作并更改单元格颜色,但VBA显示在使用COUNTIF函数时未应用任何条件

在范围内的每个单元格上,我设置了三个条件:

1: =WEEKDAY(DATE($B$4,$A$5,$C$4),2)>5 - Changes colour if the day is a weekend (light blue)
2: =COUNTIF($AL:$AL,DATE($B$4,$A$5,$C$4))>0 - Checks a range (AL column) to see if the date appears in it (dark blue)
3: =COUNTIF($AM:$AM,DATE($B$4,$A$5,$C$4))>0 - Same as above but checks a different column (yellow)
这是一个假日电子表格。列AL包含任何已设定的公共假日,列AM包含公司设定的假日。然后,日历将突出显示带有周末和假日的网格

B4年 五个月 C4-日期

A5和C4地址根据选择的单元格而变化,但我必须使用绝对地址,因为evaluate不能使用相对地址

在我的VBA代码中,我需要检查是否应用了一个条件,并为公共hols设置值“p”,或为公司hols设置值“Z”。但是,当运行VBA时,它无法识别是否满足这些条件

条件1被视为真,但它看不出其他2个条件何时满足,即使表上的颜色发生了变化

我尝试在COUNTIF中取出日期并硬编码一个字符串,但仍然没有在VBA中找到它,所以不是这样

要返回我正在使用的VBA中的活动状态,请执行以下操作:

For Ndx = 1 To Rng.FormatConditions.Count
    Set FC = Rng.FormatConditions(Ndx)

        If Application.Evaluate(FC.Formula1) Then
           ActiveCondition = Ndx
           Exit Function
        End If

Next Ndx

每个细胞都有不同的公式?你可以计算每个公式,不管它的位置如何?如果将条件复制到单元格(而不是FormatConstruction;就像单元格公式一样),该怎么办?是否按预期进行评估?如果你用你的代码来选择单元格值(而不是格式条件值),一切都如预期的那样吗?如果是这样:你能编辑你的问题来显示其他单元格的一些条件吗?@Johanness我放弃了这样做。收到回复花了太长时间,因此我没有使用条件格式,而是编写了一些VBA来循环网格,根据循环到下一个单元格的内容构造一个日期字符串,然后将编译后的日期与假日工作表中存储的日期进行比较。如果找到匹配项,则格式化单元格颜色,并将值更改为P或ZT以回答您的问题。但是,如果我将条件作为函数放入另一个单元格中,则该值将更改为TRUE,但VBA中的求值仍无法获取该值。每个单元格中的公式并不完全不同,只是单元格名称发生了变化,例如,上面的条件取自单元格C5,C6中的条件是=COUNTIF($AL:$AL,DATE($B$4,$a$6,$C$4))>B4单元格中的0是我的年份,C4:AG4列表示月份的天数,A5:A16列表示月份。因此,一个日历网格需要澄清。由于你似乎要走另一条路,我认为没有必要这样做。快乐编码