所以我正在研究一個簡單的 VBA 函式。因此,對于許多財務報告,報告并不總是在 12 月 31 日結束,有時它們會在 6 月或 3 月或其他任何時間結束。我正在嘗試處理的函式采用年終日期并回傳當前日期之間的天數(前瞻性,所以如果年終日期是昨天,那么函式將是 364 天,而不是比1),然后除以365。我在下面有一個嘗試,但由于某種原因,它總是回傳1。通過一些跟蹤,我相信它與DateDiff有關,但從我所看到的我認為我' m 使用正確的語法?我不知道出了什么問題,有人可以幫忙嗎?
Function dateCalc(ye As Date)
Dim today As Date
Dim x As Integer
today = Date
If ye < today Then
x = (365 - DateDiff("d", ye, today)) / 365
ElseIf ye > today Then
x = DateDiff("d", ye, today) / 365
Else
x = 0
End If
dateCalc = x
End Function
uj5u.com熱心網友回復:
使用您的代碼的以下導數,
Function dateCalc(ByVal YE As Date) As Double
If YE < Today Then
dateCalc = (365 - DateDiff("d", YE, Date)) / 365
ElseIf YE > Today Then
dateCalc = DateDiff("d", YE, Date) / 365
Else
dateCalc = 0
End If
End Function
在 2022 年 6 月 14 日這一天,我們看到以下內容:
?dateCalc(#6/15/2022#)生產-0.00273972602739726?dateCalc(#6/13/2022#)生產0.997260273972603
請注意,在這種YE > Today情況下,DateDiff 為 -1。如果你想要一個積極的,否定它。從問題中不清楚這是否是所需的輸出,但主要問題似乎是Integer使用Double.
轉載請註明出處,本文鏈接:https://www.uj5u.com/shujuku/492080.html
