重点内容
适用版本
桌面版通用(Excel 365 / 2021 / 2019 等)。
完整代码
Sub Swap_Values()
Dim temp As Double
temp = Range("A1").Value
Range("A1").Value = Range("B1").Value
Range("B1").Value = temp
End Sub代码怎么运行
- 按 Alt+F11 打开 VBA 编辑器(Visual Basic Editor)
- ,把上面代码贴进去
- 回到工作表,(表单控件),画一个命令按钮,指定给
Swap_Values这个宏
Developer 标签下 Insert 按钮下拉选单里的表单控件按钮图标,以及画完命令按钮后跳出的 Assign Macro 对话框
- 在 A1、B1 分别输入两个不同的数字
- 点击命令按钮两次以上,观察 A1 和 B1 的数值互换
代码逻辑说明
Dim temp As Double:先声明一个 Double 类型的变量temp,用来临时存放数字temp = Range("A1").Value:把 A1 的值存进temp,这一步是关键——不这样做的话,直接把 B1 写进 A1 会导致 A1 原本的值永久丢失Range("A1").Value = Range("B1").Value:把 B1 的值写进 A1Range("B1").Value = temp:把刚才存起来的原 A1 值写进 B1,完成交换
学完你会
常见错误
- 直接写
Range("A1").Value = Range("B1").Value再写Range("B1").Value = Range("A1").Value,没有用临时变量——第二行执行时 A1 已经被覆盖成 B1 的值,结果两个格子都变成同一个数字 temp变量类型用 Integer 但单元格里其实是小数,会导致小数部分被截断,建议用 Double 更保险
Sources
Blog / Website: