SYD 函数
返回一个 Double,该值指定某项资产在指定期间的年限总额折旧。
语法
SYD (成本、 打捞、 生命、 周期)
SYD 函数包含以下命名参数:
Part | 说明 |
---|---|
成本 | 必填。 用于指定资产的原始成本的 Double。 |
打捞 | 必填。 用于指定资产在其使用年限结束时的价值的 Double。 |
生命 | 必填。 用于指定资产的使用年限的长度的 Double。 |
时期 | 必填。 用于指定计算资产折旧的期间的 Double。 |
备注
life 和 period参数必须用相同的单位表示。 例如,如果以月份表示 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 支持和反馈,获取有关如何接收支持和提供反馈的指南。