首页 > 解决方案 > 当行在日期范围之间时运行代码

问题描述

我想运行一个代码,根据年份(例如 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

我尝试将日期解析为整数,但它仍然不起作用。

标签: excelvbaconditional

解决方案


您将日期fechaIniTarget.Value与字符串进行比较"01/01/2018"。使用具有DateSerial 函数的真实日期来比较日期和日期。

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

推荐阅读