Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/excel/27.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
Excel 如何使Today()-365或now()-365成为逻辑测试的IF语句中使用的变量?_Excel_Vba_If Statement_Variables - Fatal编程技术网

Excel 如何使Today()-365或now()-365成为逻辑测试的IF语句中使用的变量?

Excel 如何使Today()-365或now()-365成为逻辑测试的IF语句中使用的变量?,excel,vba,if-statement,variables,Excel,Vba,If Statement,Variables,我用vba在excel中创建了一个表,并创建了一个名为Date\u Check的列。公式的算法基本上是,如果失败日期早于今天()-365,即一年前,则在该列中输入“坏”一词,否则输入“好”。该代码适用于特定列中的整个范围,如下所示: Dim LastYear as Date 'LastYear is the date a year ago time the code is run LastYear = Today() -365 'Date_Check is a column in my

我用vba在excel中创建了一个表,并创建了一个名为Date\u Check的列。公式的算法基本上是,如果失败日期早于今天()-365,即一年前,则在该列中输入“坏”一词,否则输入“好”。该代码适用于特定列中的整个范围,如下所示:

Dim LastYear  as Date
'LastYear is the date a year ago  time the code is run 
LastYear = Today() -365

'Date_Check is a column in my table(BigTable)
Range("BigTable[Date_Check]").Formula = "= IF((BigTable[FAILDATE]<  LastYear ), ""Bad"", ""Good"")"
Dim去年作为日期
'LastYear是一年前运行代码的日期
去年=今天()-365
'日期检查是我的表(BigTable)中的一列
范围(“BigTable[Date\u Check]”。公式=“=IF((BigTable[FAILDATE]<去年)、“坏”、“好”)
我试图运行此代码,但它给了我#名称?excel错误。当我对代码进行疑难解答时,它显示变量LastYear无法识别或无法与Fail date列中的日期进行比较

我知道将Today()-365直接放在if语句中可以解决问题,但这会使代码速度非常慢:

Range("BigTable[Date_Check]").Formula = "= IF((BigTable[FAILDATE]<  (Today() -365)), ""Bad"", ""Good"")"
范围(“BigTable[Date\u Check]”。公式=“=IF((BigTable[FAILDATE]<(Today()-365)),“坏”、“好”)

如何识别LastYear变量,使代码运行更快?

请尝试这种方法:

Range("BigTable[Date_Check]").Formula = "=IF(YEAR(FAILDATE)<YEAR(TODAY() - 365),""Good"",""Bad"")"

范围(“BigTable[Date\u Check]”。公式=“=IF(YEAR(FAILDATE))尝试将
LastYear=Today()-365
替换为
LastYear=Date-365
。并更改公式如下:
”=IF((BigTable[FAILDATE])您需要正确构建公式。尝试
“=IF((BigTable[FAILDATE)@斯科特·克兰纳:正确!我测试了它,我只是复制了结果公式…也更正了公式。