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

Excel VBA中Is运算符判断Range对象返回False的原因咨询

VBA中Is运算符判断Range对象返回False的原因分析

问题核心

你的代码里,工作表对象用Is判断返回True,但指向同一单元格的两个Range变量用Is返回False,原因在于VBA对不同对象的实例处理逻辑不同:

  • 工作表对象:Sheets(1)是单例引用,每次调用都会返回内存中同一个对象实例,所以my01和my02指向同一个对象,Is运算符判断返回True。
  • Range对象:每次调用Sheets(1).Range("A1"),VBA都会创建一个新的Range对象实例——虽然它们指向工作表中同一个单元格,但本质是两个独立的内存对象。Is运算符的作用是判断两个变量是否指向同一个对象实例,因此返回False。

补充说明

  • =运算符判断的是Range对象的内容/值是否相等,而非对象实例本身,所以能正常返回True。
  • 如果要让Is对Range返回True,需让两个变量指向同一个Range实例,示例代码:
Dim my01, my02, tempRange
Set tempRange = Sheets(1).Range("A1")
Set my01 = tempRange
Set my02 = tempRange
MsgBox my01 Is my02 ' 此时返回True

内容的提问来源于stack exchange,提问作者오바마

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.13 22:32:34