SYD 函数

返回一个 Double,该值指定某项资产在指定期间的年限总额折旧。

语法

SYD (成本打捞生命周期)

SYD 函数包含以下命名参数

Part 说明
成本 必填。 用于指定资产的原始成本的 Double
打捞 必填。 用于指定资产在其使用年限结束时的价值的 Double
生命 必填。 用于指定资产的使用年限的长度的 Double
时期 必填。 用于指定计算资产折旧的期间的 Double

备注

lifeperiod参数必须用相同的单位表示。 例如,如果以月份表示 life,则也必须以月份表示 period。 所有参数都必须是正数。

示例

此示例使用 SYD 函数返回给定资产的初始成本 (InitCost) 、资产使用年限结束时的剩余价值 (SalvageVal) ,以及资产的总年限 (LifeTime) 年限的折旧值。 计算折旧额的年限为 PDepr

Dim Fmt, InitCost, SalvageVal, MonthLife, LifeTime, DepYear, PDepr
Const YEARMONTHS = 12    ' Number of months in a year.
Fmt = "###,##0.00"    ' Define money format.
InitCost = InputBox("What's the initial cost of the asset?")
SalvageVal = InputBox("What's the asset's value at the end of its life?")
MonthLife = InputBox("What's the asset's useful life in months?")
Do While MonthLife < YEARMONTHS    ' 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 / YEARMONTHS    ' Convert months to years.
If LifeTime <> Int(MonthLife / YEARMONTHS) Then
    LifeTime = Int(LifeTime + 1)    ' Round up to nearest year.
End If 
DepYear = CInt(InputBox("For which year do you want depreciation?"))
Do While DepYear < 1 Or DepYear > LifeTime
    MsgBox "You must enter at least 1 but not more than " & LifeTime
    DepYear = CInt(InputBox("For what year do you want depreciation?"))
Loop
PDepr = SYD(InitCost, SalvageVal, LifeTime, DepYear)
MsgBox "The depreciation for year " & DepYear & " is " & Format(PDepr, Fmt) & "."

另请参阅

支持和反馈

有关于 Office VBA 或本文档的疑问或反馈? 请参阅 Office VBA 支持和反馈,获取有关如何接收支持和提供反馈的指南。