当行在日期范围之间时运行代码

时间:2019-01-09 15:53:34

标签: excel vba conditional

我想运行一个基于年份将数据从一张纸传输到另一张纸的代码(例如01/01/2018-31/1/2018)。

该工作表包含2列日期,其中start_date和end_date存储为日期,因此我执行了If语句,但它似乎无法“理解”我之前存储的日期值。

'Dates columns
Dim fechaIniTarget As Variant
Dim fechaFinTarget As Variant
'Ini = start / Fin = end
Set fechaIniTarget = Range("D2")
Set fechaFinTarget = Range("E2")

If fechaIniTarget.Value = "01/01/2018" And fechaFinTarget.Value = "31/12/2018" Then

   ' function

MsgBox "PROCESO COMPLETO"

End If

我尝试将日期解析为整数,但仍然无法正常工作。

1 个答案:

答案 0 :(得分:1)

您将日期fechaIniTarget.Value与字符串"01/01/2018"进行比较。将真实日期与DateSerial function一起使用,以比较日期与日期。

If fechaIniTarget.Value = DateSerial(2018, 1, 1) And fechaFinTarget.Value = DateSerial(2018, 12, 31) Then

还要注意,您使用了2次fechaIniTarget,但我想第二次应该是fechaFinTarget

如果不需要,也不要使用Variant。而是在此处声明变量As Range

Dim fechaIniTarget As Range
Dim fechaFinTarget As Range