Excel 如何使Today()-365或now()-365成为逻辑测试的IF语句中使用的变量?
我用vba在excel中创建了一个表,并创建了一个名为Date\u Check的列。公式的算法基本上是,如果失败日期早于今天()-365,即一年前,则在该列中输入“坏”一词,否则输入“好”。该代码适用于特定列中的整个范围,如下所示: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
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)@斯科特·克兰纳:正确!我测试了它,我只是复制了结果公式…也更正了公式。