MICROSOFT

EP07. “Loan Calculator 贷款计算器”

首页 Microsoft 工具 Excel · VBA · ActiveX Controls · EP07
约 6 分钟· #EP07#Excel#ActiveX Controls
🔒 登录后可标记已读
  • ActiveX 控件的综合实战:用两个滚动条(ScrollBar)调整贷款金额和利率
  • 搭配两个选项按钮切换「月付」或「年付」,再用 PMT 函数即时算出应付金额
  • 贷款金额、还款金额都可以套用 RM(马来令吉)实际填写
  • 前置知识:EP05 选项按钮、EP06 微调按钮(滚动条用法类似),以及 PMT 函数的基本概念

重点内容


适用版本

桌面版通用(Excel 365 / 2021 / 2019 等)。


控件设置

  • 第一个滚动条(利率):Min=0、Max=20、SmallChange=0、LargeChange=2
  • 第二个滚动条(贷款年限):Min=5、Max=30、SmallChange=1、LargeChange=5、LinkedCell 设成 F8
  • D4(贷款金额)可以填实际的 RM 金额,例如 RM 50,000

[截图:完整的贷款计算器工作表布局,两条滚动条(利率、年限)、月付/年付选项按钮,以及即时算出的应付金额]


工作表变动事件:贷款金额改变时重算

If Target.Address = "$D$4" Then Application.Run "Calculate"

第一个滚动条变动时

Private Sub ScrollBar1_Change()
  Range("F6").Value = ScrollBar1.Value / 100
  Application.Run "Calculate"
End Sub

滚动条本身只能给整数,除以 100 换算成百分比利率(比如滚动条给 5,实际利率是 5%)。


第二个滚动条变动时

Private Sub ScrollBar2_Change()
  Application.Run "Calculate"
End Sub

两个选项按钮:切换月付/年付

Private Sub OptionButton1_Click()
  If OptionButton1.Value = True Then Range("C12").Value = "Monthly Payment"
  Application.Run "Calculate"
End Sub

Private Sub OptionButton2_Click()
  If OptionButton2.Value = True Then Range("C12").Value = "Yearly Payment"
  Application.Run "Calculate"
End Sub

核心计算程序

Sub Calculate()
  Dim loan As Long, rate As Double, nper As Integer
  loan = Range("D4").Value
  rate = Range("F6").Value
  nper = Range("F8").Value
  If Sheet1.OptionButton1.Value = True Then
    rate = rate / 12
    nper = nper * 12
  End If
  Range("D12").Value = -1 * WorksheetFunction.Pmt(rate, nper, loan)
End Sub

逻辑说明

  • 贷款金额、利率、年限任何一项变动,都会呼叫同一个 Calculate 程序重新计算
  • 选「月付」时,年利率要除以 12 变成月利率,年限要乘以 12 变成月数,因为 PMT 函数算的是「每一期」的还款金额
  • PMT 函数算出来的结果本身是负数(代表付出去的钱),前面乘 -1 转成正数方便阅读

常见错误

  • 选月付时忘记把利率和期数分别做「除以 12」「乘以 12」的换算,直接套用年利率年限,算出金额错得离谱
  • 各个控件变动时忘记统一呼叫 Calculate,导致改了利率但金额没有重新计算
  • PMT 结果没有乘 -1,显示成负数的还款金额,容易让人误解

学完你会

  • ✅ 用滚动条(ScrollBar)搭配 LinkedCell 让使用者拖拽调整数值
  • ✅ 组合多个控件的变动事件,统一呼叫同一个计算程序
  • ✅ 用 WorksheetFunction.Pmt 算出贷款的每期应付金额,并处理月付/年付的利率换算

Sources

Blog / Website:

  1. Loan Calculator