DDB 函數
會傳回 Double ,指定資產在特定時段的折舊,方法是使用雙重遞減餘額方法或您指定的一些其他方法。
語法
DDB (成本、 回收、 生命、 週期、[ 因素 ])
DDB 函式具有下列命名自變數:
部分 | 描述 |
---|---|
成本 | 此為必要動作。 雙 精度浮點數指定資產的初始成本。 |
打撈 | 此為必要動作。 雙 精度浮點數指定資產在使用生命周期結束時的值。 |
生命 | 此為必要動作。 雙 精度浮點數指定資產的使用年限長度。 |
時期 | 此為必要動作。 雙 精度浮點數指定資產折舊計算的期間。 |
因素 | 選用。 Variant 指定餘額減少的速率。 如果省略,則會假設有 2 個 (雙遞減方法) 。 |
註解
倍率餘額遞減法是加速折舊法的一種。 這種方法的第一期折舊最高,然後依次遞減。
life 和period自變數必須以相同的單位表示。 例如,如果 生命 週期是以月為單位, 則期間 也必須以月為單位。 所有自變數都必須是正數。
DDB 函式會使用下列公式來計算指定期間的折舊:
折舊/ 週期 = ( (成本 - 回收) * 因素) / 生命
範例
這個範例會使用 DDB 函式來傳回指定期間內資產的折舊,並指定初始成本 () InitCost
、資產實用生命周期結束時的回收值 () SalvageVal
、資產在年份 () LifeTime
的總生命週期,以及折舊計算 (Depr
) 的年份。
Dim Fmt, InitCost, SalvageVal, MonthLife, LifeTime, DepYear, Depr
Const YRMOS = 12 ' Number of months in a year.
Fmt = "###,##0.00"
InitCost = InputBox("What's the initial cost of the asset?")
SalvageVal = InputBox("Enter the asset's value at end of its life.")
MonthLife = InputBox("What's the asset's useful life in months?")
Do While MonthLife < YRMOS ' Ensure period is >= 1 year.
MsgBox "Asset life must be a year or more."
MonthLife = InputBox("What's the asset's useful life in months?")
Loop
LifeTime = MonthLife / YRMOS ' Convert months to years.
If LifeTime <> Int(MonthLife / YRMOS) Then
LifeTime = Int(LifeTime + 1) ' Round up to nearest year.
End If
DepYear = CInt(InputBox("Enter year for depreciation calculation."))
Do While DepYear < 1 Or DepYear > LifeTime
MsgBox "You must enter at least 1 but not more than " & LifeTime
DepYear = InputBox("Enter year for depreciation calculation.")
Loop
Depr = DDB(InitCost, SalvageVal, LifeTime, DepYear)
MsgBox "The depreciation for year " & DepYear & " is " & _
Format(Depr, Fmt) & "."
另請參閱
支援和意見反應
有關於 Office VBA 或這份文件的問題或意見反應嗎? 如需取得支援服務並提供意見反應的相關指導,請參閱 Office VBA 支援與意見反應。