You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

ActiveX复选框链接单元格后代码读取值均为True的原因排查

问题原因及解决方法

核心问题:代码未正确更新单元格引用

你提供的代码存在两个关键错误,导致每次读取的都是初始单元格G2的值:

  1. 错误的对象赋值方式:r = Cells(2, i).Activate这行完全无效——Activate仅用于激活单元格,不会改变r指向的对象,且Range对象必须用Set关键字赋值。
  2. 未重新分配单元格引用:循环过程中没有更新r的指向,它始终指向最初的G2,因此不管循环多少次,读取的都是同一个单元格的值。

修正后的代码

直接为r分配循环对应的单元格对象,去掉不必要的Activate操作:

Dim r As Range
' 遍历第2行第7列到第26列的单元格
For i = 7 To 26
    Set r = Cells(2, i)
    MsgBox r.Value
Next i

额外验证点

  • 确认ActiveX复选框的LinkedCell属性已正确绑定到目标单元格(右键复选框→选择「属性」→检查LinkedCell字段是否匹配对应单元格)。
  • 尽量避免使用Activate/Select这类操作,直接引用单元格对象更高效且不易出错。

内容的提问来源于stack exchange,提问作者Jess2023

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.01 19:56:50