Excel 使用实时更新计算指定日期内的天数

Excel 使用实时更新计算指定日期内的天数,excel,vba,excel-formula,Excel,Vba,Excel Formula,我已使用以下公式获得实时更新的待定天数计数。但效果并不理想。 我使用vba只计算没有颜色的单元格。XFD单元是空白单元,以设置仅计算空白单元的标准。 挑战在于实时排除追溯日期 =(CountCellsByColor($B2:$AL2,$XFD$1))-(TODAY()-$B$1) VBA如下所示: Function CountCellsByColor(rData As Range, cellRefColor As Range) As Long Dim indRefColor As Lo

我已使用以下公式获得实时更新的待定天数计数。但效果并不理想。 我使用vba只计算没有颜色的单元格。XFD单元是空白单元,以设置仅计算空白单元的标准。 挑战在于实时排除追溯日期

=(CountCellsByColor($B2:$AL2,$XFD$1))-(TODAY()-$B$1)
VBA如下所示:

Function CountCellsByColor(rData As Range, cellRefColor As Range) As Long
    Dim indRefColor As Long
    Dim cellCurrent As Range
    Dim cntRes As Long

    Application.Volatile
    cntRes = 0
    indRefColor = cellRefColor.Cells(1, 1).Interior.Color
    For Each cellCurrent In rData
        If indRefColor = cellCurrent.Interior.Color Then
            cntRes = cntRes + 1
        End If
    Next cellCurrent

    CountCellsByColor = cntRes
End Function
(假设不包括当天单元格。)

TLDR:在公式中添加匹配和偏移

如果输入的日期格式为日期(不是文本),则使用:

=CountCellsByColor($B2:$AL2,$XFD$1)-CountCellsByColor(OFFSET($B2,0,0,1,MATCH(today(),$B1:$AL1,0)),$XFD$1)

希望能有帮助。(:

预期输出是什么?vba定义是什么样的?(请也添加vba标记)添加了vba标记问:什么是“实时更新”?什么是“indRefColor”——“红色”、“黄色”或“其他东西”?您希望“cntRes”是什么?所有红色和黄色框的总和?什么是“cntRed”?请澄清一下“实时更新”意味着,无论何时打开excel工作簿,它都不会在计数中包含“今天()”之前的日期。由于VBA编码是从internet复制的,因此对它没有太多了解。如果您只运行
=CountCellsByColor($B2:$AL2,$XFD$1)
结果是不是=18?勘误表:我已更正匹配项()覆盖范围
$B1:$AL1
的公式,而不是(错误的,原始的)
$B2:$AL2
。如果解决方案有效,您可以单击“勾选”从未回答列表中删除此问题。(: