EP02. “Currency Converter 货币转换器”
🔒 登录后可标记已读- 用 Userform 做一个三种货币(欧元/美元/英镑)互相换算的小工具
- 核心是用一个二维数组存汇率表
- 靠两个下拉选单选的货币对照到数组里的对应汇率
- 前置知识:EP01 的 Userform 基本操作、二维数组的概念
重点内容
适用版本
桌面版通用(Excel 365 / 2021 / 2019 等)。
打开表单
Private Sub CommandButton1_Click()
UserForm1.Show
End Sub
初始化:填好两个下拉选单的默认选项
Private Sub UserForm_Initialize()
With ListBox1
.AddItem "Euro"
.AddItem "US Dollar"
.AddItem "British Pound"
End With
With ListBox2
.AddItem "Euro"
.AddItem "US Dollar"
.AddItem "British Pound"
End With
ListBox1.ListIndex = 1
ListBox2.ListIndex = 0
TextBox1.Value = 1
TextBox2.Value = 0.722152
End Sub
换算逻辑:用二维数组存汇率
Private Sub CommandButton1_Click()
Dim rates(0 To 2, 0 To 2) As Double, i As Integer, j As Integer
rates(0, 0) = 1
rates(0, 1) = 1.38475
rates(0, 2) = 0.87452
rates(1, 0) = 0.722152
rates(1, 1) = 1
rates(1, 2) = 0.63161
rates(2, 0) = 1.143484
rates(2, 1) = 1.583255
rates(2, 2) = 1
For i = 0 To 2
For j = 0 To 2
If ListBox1.ListIndex = i And ListBox2.ListIndex = j Then TextBox2.Value = TextBox1.Value * rates(i, j)
Next j
Next i
End Sub
逻辑说明
rates(i, j)代表「从第 i 种货币换算成第 j 种货币」的汇率,rates(0,0)/rates(1,1)/rates(2,2)都是 1(自己换自己当然是 1 比 1)- 循环走过 3×3 的汇率表,找到跟两个下拉选单目前选中项目对应的那一格汇率,乘上输入金额得出结果
[截图:运行时的货币转换器表单,两个下拉选单分别选好来源/目标货币,输入金额后 TextBox2 显示换算结果]
常见错误
- 汇率表填反方向(该填「A 换 B」的汇率却填成「B 换 A」),换算结果颠倒
ListIndex从 0 开始编号,跟数组下标对齐时数错位置- 汇率是会变动的实际数值,写死在代码里,时间久了汇率过期没有更新
学完你会
- ✅ 用二维数组存放「行=来源货币、列=目标货币」的对照表
- ✅ 用两层循环 + If 判断,找到对应下拉选项组合的那格汇率
- ✅ 知道这类写死的汇率数据只适合示范,实际使用要接实时汇率来源
Sources
Blog / Website: