Im folgenden Code habe ich 3 Bereiche gesetzt, die Variablen entsprechen. Ich habe kein Problem mit rngNext
und rngDays
, sie weisen die richtige Variable dem richtigen Bereich zu - keine Sorge.Der in der Funktion eingestellte Bereich wird gelöscht, wenn zum Hauptrechner zurückgekehrt wird.
Bizarely, RngLast schreibt nicht in das Arbeitsblatt. Genauer gesagt (wenn ich in den Code gehe) kann ich den Wert sehen, der wie erwartet auf das Blatt in der Zeile rngLast.Value = LastBillDate
geschrieben wird, aber dann nach der End Function
Zeile verschwindet, wenn ich zum Haupt-Sub zurückkehre.
Ich habe das noch nie zuvor erlebt, das einzige was ich mir vorstellen kann ist, dass es vielleicht damit zu tun hat, dass die Variable ihren Wert verliert, nachdem ich zum Sub zurückkehre, aber sicher ist es schon auf dem Arbeitsblatt geschrieben?
Function DaysRemaining(lngBillDate As Long, lngRow As Long)
Dim rngLast As Range, rngNext As Range, rngDays As Range
Dim NextBillDate As Date, LastBillDate As Date
Set rngLast = Worksheets("Data").Range("G" & lngRow)
Set rngNext = Worksheets("Data").Range("H" & lngRow)
Set rngDays = Worksheets("Data").Range("I" & lngRow)
If lngBillDate > Day(Date) Then
NextBillDate = CDate(Format(lngBillDate, "00") & "/" & Format(Month(Date), "00") & "/" & Year(Date))
LastBillDate = DateAdd("m", -1, NextBillDate)
Else
NextBillDate = CDate(Format(lngBillDate, "00") & "/" & Format(Month(Date) + 1, "00") & "/" & Year(Date))
LastBillDate = DateAdd("m", -1, NextBillDate)
End If
rngNext.Value = NextBillDate
rngLast.Value = LastBillDate
rngDays.Value = rngNext.Value - Date
End Function
Hilfe wie immer geschätzt.
Das ist seltsam. Was passiert, wenn Sie nur einen Wert für 'rngNext' fest codieren? Das könnte helfen, sicherzustellen, dass nichts in diesem Wert wonky ist, der es verursacht. –
Ich bekomme das gleiche Ergebnis hart Codierung beider Variablen, leider RngLast verschwindet an der gleichen Stelle. – User632716
Woops, wie 756tgs sagt, dieses Verhalten wird erwartet, wenn es eine Arbeitsmappenfunktion ist. –