DDB 函数

应用对象
Microsoft 365 专属 Access Access 2024 Access 2021 Access 2019 Access 2016

返回使用双倍余额递减法或您指定的某些其他方法指定资产在特定时间段内的折旧的 Double。

语法

DDB (cost, salvage, life, period* [, factor] )

DDB 函数语法具有以下参数:

参数 说明
成本 必需。 Double 指定资产的初始成本。
Salvage 必需。 双重 指定资产在其使用寿命结束时的价值。
生活 必需。 双精度 指定资产的使用寿命长度。
句点 必需。 双重 指定计算资产折旧的时期。
因素 可选。 指定余额递减速率的变体。 如果省略,则假定 2 (双递减法) 。

    

备注

双倍余额递减法以加速的比率计算折旧。 折旧在第一阶段是最高的,在后继阶段中会减少。

寿命周期参数必须使用相同的单位表示。 例如,如果 生命 以月为单位,则 周期 也必须以月为单位。 所有参数必须为正数。

DDB 函数使用以下公式计算给定时期的折旧费:

折旧/ 期间 = ( (成本残) * 系数) / 寿命

示例

注意

下面的示例演示了在Visual Basic for Applications (VBA) 模块中使用此函数。 有关使用 VBA 的详细信息,请在“搜索”旁边的下拉列表中选择“开发人员参考”,然后在搜索框中输入一个或多个术语。

本示例使用 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) & "."