Выполнить код, когда строки находятся в диапазоне дат - PullRequest
0 голосов
/ 09 января 2019

Я хочу запустить код, который переносит данные с одного листа на другой в зависимости от года (например, 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 голосов
/ 09 января 2019

Вы сравниваете дату 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
...