DDB 函式
更新:2007 年 11 月
傳回 Double,指定使用雙倍餘額遞減法或您指定的其他方法,計算指定期間內的資產折舊。
Function DDB( _
ByVal Cost As Double, _
ByVal Salvage As Double, _
ByVal Life As Double, _
ByVal Period As Double, _
Optional ByVal Factor As Double = 2.0 _
) As Double
參數
Cost
必要項。Double,指定資產的初始成本。Salvage
必要項。Double,指定資產在其報廢時的值。Life
必要項。Double,指定資產的使用年限。Period
必要項。Double,指定資產折舊的計算期間。Factor
選擇項。Double,指定餘額遞減時的比率。如果省略,則假設為 2 (餘額倍率遞減法)。
例外狀況
例外狀況類型 |
錯誤代碼 |
條件 |
---|---|---|
Factor <= 0、Salvage < 0、Period <= 0 或 Period > Life.。 |
如果將使用非結構化錯誤處理的 Visual Basic 6.0 應用程式升級,請參閱「錯誤代碼」資料行 (您可以將錯誤代碼與 Number 屬性 (Err 物件) 比對)。但是,請盡可能考慮以 Visual Basic 的結構化例外處理概觀 取代這類錯誤控制項。
備註
雙倍餘額遞減法會使用加速率的方式計算折舊。第一次的折舊會最高,然後會逐期降低。
Life 和 Period 引數必須使用相同單位來表示。例如,如果以月份表示 Life,則也必須以月份表示 Period。所有引數都必須為正數。
DDB 函式會使用下列公式來計算給定之期間的折舊:
Depreciation / Period = ((Cost – Salvage) * Factor) / Life
範例
這個範例會使用 DDB 函式傳回指定期間的資產折舊,需提供初始成本 (InitCost)、資產使用年限結束時的殘值 (SalvageVal)、資產的總使用年限 (LifeTime) 和計算折舊的年限期間 (Depr)。
Dim InitCost, SalvageVal, LifeTime, DepYear As Double
Dim Fmt As String = "###,##0.00"
InitCost = CDbl(InputBox("What's the initial cost of the asset?"))
SalvageVal = CDbl(InputBox("Enter the asset's value at end of its life."))
LifeTime = CDbl(InputBox("What's the asset's useful life in years?"))
' Use the SLN function to calculate the deprecation per year.
Dim SlnDepr As Double = SLN(InitCost, SalvageVal, LifeTime)
Dim msg As String = "The depreciation per year: " & Format(SlnDepr, Fmt)
msg &= vbCrLf & "Year" & vbTab & "Linear" & vbTab & "Doubling" & vbCrLf
' Use the SYD and DDB functions to calculate the deprecation for each year.
For DepYear = 1 To LifeTime
msg &= DepYear & vbTab & _
Format(SYD(InitCost, SalvageVal, LifeTime, DepYear), Fmt) & vbTab & _
Format(DDB(InitCost, SalvageVal, LifeTime, DepYear), Fmt) & vbCrLf
Next
MsgBox(msg)
需求
命名空間 (Namespace)︰Microsoft.VisualBasic
**模組︰**Financial
組件:Visual Basic Runtime Library (在 Microsoft.VisualBasic.dll 中)