2016-09-08 1 views
-2

Ich habe eine Reihe von Daten aus Spalte E3: E, in Spalte F, ich möchte den Unterschied in Tagen von heute-E3 = F3, in F4 = Heute-E4 und so auf, bis der letzte Wert in E. ist dies der Code ich habe jetzt:MACRO, Unterschied zwischen einem Datum und heute

'Calculate Overdue 
For i = 1 To lastrow 
    If i = 1 Then 
     Workbooks(Main).Sheets(1).Cells(i + 1, lastcolumn + 1).Value = "Overdue [days]" 
    Else 
     Workbooks(Main).Sheets(1).Cells(i + 1, lastcolumn + 1).Value = _ 
     Now - Workbooks(Main).Sheets(1).Cells(i + 1, lastcolumn - 1).Value 
    End If 
Next i 

Hilfe pleaseee

+1

Was funktioniert nicht? Woher bekommst du einen Fehler? –

+1

Warum VBA? Sie können einfach eine Formel schreiben und die Spalte F nach unten ziehen. – Kyle

+0

@Valsac, falls Sie die VBA-Option verwenden möchten, versuchen Sie den folgenden Code –

Antwort

0

Wenn Sie die VBA-Lösung verwenden möchten, wird der Code unten arbeiten. Ich bevorzuge die DateDiff Funktion, in dem Code darunter wird die überfällige in "d" (Tage) zurückgeben.

Um meine Sicherheit zu gewährleisten (und einen saubereren Code zu haben), definiere ich immer meine Sheet-Objekte (es reduziert auch die Möglichkeiten, später Fehler zu finden).

Da Sie wissen, Ihre Reisedaten sind in Spalte E und das Ergebnis in Spalte F, habe ich bereits ausgeführt, dass im Code (mit lastcolumn ersetzt werden, aber nicht sicher, warum).

Sub Calc_Overdue() 
'Calculate Overdue 

Dim Sht    As Worksheet 
Dim DaysOverdue  As Long 
Dim LastRow   As Long 
Dim i    As Long 

Set Sht = Workbooks(Main).Sheets(1) 

i = 1 
With Sht 
    ' find last row in Column E (where the dates are kept) 
    LastRow = .Cells(.Rows.Count, "E").End(xlUp).Row 

    ' there is no need to loop through the IF just to copy the header row 
    .Cells(1, "F").Value = "Overdue [days]" 

    ' start loop from 2nd row 
    For i = 2 To LastRow 
     DaysOverdue = DateDiff("d", Now, .Cells(i, "E").Value) 
     .Cells(i, "F").Value = DaysOverdue 
    Next i 

End With 

End Sub 
Verwandte Themen