Microsoft Lab
全部软件
Excel创建宏(Create a Macro)约 4 分钟

Swap Values 交换两个值

重点内容


适用版本

桌面版通用(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

代码怎么运行

  1. 按 Alt+F11 打开 VBA 编辑器(Visual Basic Editor)
  2. Insert›Module,把上面代码贴进去
  3. 回到工作表,Developer›Insert›Button(表单控件),画一个命令按钮,指定给 Swap_Values 这个宏
📷 画面提示

Developer 标签下 Insert 按钮下拉选单里的表单控件按钮图标,以及画完命令按钮后跳出的 Assign Macro 对话框

  1. 在 A1、B1 分别输入两个不同的数字
  2. 点击命令按钮两次以上,观察 A1 和 B1 的数值互换

代码逻辑说明

  • Dim temp As Double:先声明一个 Double 类型的变量 temp,用来临时存放数字
  • temp = Range("A1").Value:把 A1 的值存进 temp,这一步是关键——不这样做的话,直接把 B1 写进 A1 会导致 A1 原本的值永久丢失
  • Range("A1").Value = Range("B1").Value:把 B1 的值写进 A1
  • Range("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:

  1. Swap Values
只记在你的浏览器里,换设备不会同步。