【Excel】单元格如何实现联动(同步更新)-VBA宏方法

一、功能说明

通过将本文档中代码复制进Excel文件,可实现2至3个单元格的数值实时同步更新,即1个数值改变后,其余1至2个单元格同时变化。更多单元格联动也可参考本文方法。

二、功能展示

改变一个单元格数值,其他的单元格自动变化同步

2个单元格联动
在这里插入图片描述

3个单元格联动
在这里插入图片描述

2个不同表中单元格联动
在这里插入图片描述
3个不同表中单元格联动
在这里插入图片描述

三、设置步骤

  1. 新建Excel文件
  2. 将文件保存为“.xlsm”格式(启用宏的工作簿)
  3. 将需要同步的单元格名称自定义修改为“AAAA”、“BBBB”、“CCCC”(若仅同步2个单元格,无需定义“CCCC”)
    (1)打开名称管理器
    在这里插入图片描述
    (2)指定单元格位置,并新建单元格名称
    在这里插入图片描述
    当前Excel文档中自定义名称的单元格列表如下,其中数值列为对应单元格的当前值
    在这里插入图片描述
    对于本文档使用的方法(Excel 单元格联动),可以指定不同同工作表中的的单元格,如下所示:
    在这里插入图片描述
    Office的名称管理器操作类似
    在这里插入图片描述
  4. 打开VBA宏编程界面
    (1)Excel
    表格sheet右键选择“查看代码”
    在这里插入图片描述
    在这里插入图片描述
    (2)WPS
    点击:工具 → 开发工具 → VB编辑器 / 查看代码
    在这里插入图片描述
    在这里插入图片描述
  5. 复制代码进入VBA代码框

(1) 代码输入方式
在这里插入图片描述

(2) 2个单元格联动-VBA代码

'初始化并指定单元格的值  
'本示例中需要单元格命名为“AAAA”、“BBBB”  
Dim av As String '存储单元格AAAA的值  
Dim bv As String '存储单元格BBBB的值  
  
'以下代码为判断指定的两个单元格的值是否改变  
'若有一个单元格的值发生变化,则另一个也比同步变化  
'并保存更改后的数值  
Private Sub Workbook_SheetSelectionChange(ByVal Sh As Object, ByVal Target As Range)  
    If Range("AAAA").Value <> av Then 'AAAA的值发生改变  
        Range("BBBB").Value = Range("AAAA").Value  
    Else 'BBBB的值发生改变  
        Range("AAAA").Value = Range("BBBB").Value  
    End If  
    av = Range("AAAA").Value  
    bv = Range("BBBB").Value  
End Sub  

(3) 3个单元格联动-VBA代码

'初始化并指定单元格的值  
'本示例中需要单元格命名为“AAAA”、“BBBB”、“CCCC”  
Dim av As String '存储单元格AAAA的值  
Dim bv As String '存储单元格BBBB的值  
Dim cv As String '存储单元格CCCC的值  
  
'以下代码为判断指定的两个单元格的值是否改变  
'若有一个单元格的值发生变化,则另一个也比同步变化  
'并保存更改后的数值  
Private Sub Workbook_SheetSelectionChange(ByVal Sh As Object, ByVal Target As Range)  
    If Range("AAAA").Value <> av Then 'AAAA的值发生改变  
        Range("BBBB").Value = Range("AAAA").Value  
        Range("CCCC").Value = Range("AAAA").Value  
    ElseIf Range("BBBB").Value <> bv Then 'BBBB的值发生改变  
        Range("AAAA").Value = Range("BBBB").Value  
        Range("CCCC").Value = Range("BBBB").Value  
    Else 'CCCC的值发生改变  
        Range("AAAA").Value = Range("CCCC").Value  
        Range("BBBB").Value = Range("CCCC").Value  
    End If  
    av = Range("AAAA").Value  
    bv = Range("BBBB").Value  
    cv = Range("CCCC").Value  
End Sub  

(4) 更多数量单元格联动
可参考以上代码进行调整

四、异常处理

1.Excel没有宏功能(个人版WPS一般没有宏功能)

(1)参考网址
WPS如何启用宏功能?WPS运行VBA代码

(2)安装步骤
①关闭WPS程序
②运行安装包
③安装完成
④打开WPS表格
⑤菜单栏 → 工具 → 开发工具 → 使用宏功能
在这里插入图片描述
在这里插入图片描述

2.宏未启用 / 被禁止

(1)Office
方法一:点击“启用宏”有些版本可能无此提示
在这里插入图片描述
方法二:文件 → 选项 → 信任中心 → 信任中心设置 → 宏设置 → 启用VBA宏
在这里插入图片描述
在这里插入图片描述

(2)WPS
点击“启用宏”有些版本可能无此提示
在这里插入图片描述
若宏被禁止,可点击:开发工具 → 宏安全性 → 中
在这里插入图片描述

3.Excel程序崩溃

若Excel文件因为运行VBA宏而崩溃闪退,关闭电脑自动打开的Excel临时保存文档,重新打开该Excel文件,并“启用宏”,在文件有VBA宏代码时,该功能可继续使用。

参考

  1. Excel单元格如何互相关联,任何一个改了,另一个也跟着变
  2. 怎么实现两个单元格内容互相关联,改变其中任一个另一个会跟着变化
评论 11
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Atletico_zxs

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值