2016-05-24 6 views
0

Я пытаюсь добавить количество дней в текущее поле даты с помощью VB. Для получения подробной информации я использую два разных листа. Ниже мой код:Функция DateAdd в excel-vba

Dim data3 As Variant 
Dim data5 As Variant 
Dim data6 As Date 
Dim duedate As Date 

for i = 1 to 10 
data3 = Sheets("Sheet1").Cells(i, "A").Value 
data5 = Sheets("Sheet1").Cells(i, "C").Value 
data6 = CDate(Sheets("Sheet2").Cells(i, "C").Value) 

If data3 = "Value1" And (data5 = "Value2" Or data5 = "Value3") Then 
duedate = DateAdd("d", 5, data6) 
Sheets("Sheet1").Cells(i, "D").Value = duedate 

Else 
'Do nothing 

End If 
Next i 

Я не получаю желаемое значение. Не могли бы вы сообщить мне, где я ошибаюсь.

Заранее спасибо

+0

Вы просто пытаетесь добавить 5 дней к данным6? – Histerical

+0

Да, Data6 также содержит дату. –

+0

Оба данных5 и data6 взяты из разных листов. –

ответ

0

Вот текущий код, который я использую, я сделал несколько незначительных изменений, но на самом деле не какое-либо значение для вашего кода выше, к тому же, избавившись от DateAdd части.

Sub test() 

Dim data3 As Variant 
Dim data5 As Variant 
Dim data6 As Date 
Dim duedate As Date 

For i = 1 To 10 
    data3 = Sheets(1).Cells(i, "A").Value 
    data5 = Sheets(1).Cells(i, "C").Value 
    data6 = CDate(Sheets(2).Cells(i, "C").Value) 

    If data3 = "Value1" And (data5 = "Value2" Or data5 = "Value3") Then 
     duedate = data6 + 5 
     Sheets(1).Cells(i, "D").Value = duedate 
    End If 
Next i 

End Sub 
Смежные вопросы