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

访问命名区域修改值时出现“对象不支持该属性或方法”错误

解决工作簿级常量命名区域赋值报错问题

问题原因

你定义的Table1LastRowFixed是工作簿级常量命名区域(即命名时直接设置为固定值,未关联单元格),这类命名项不属于Range对象的引用范围——Range只能指向单元格区域,无法识别常量类型的命名项,因此用ActiveWorkbook.Range("Table1LastRowFixed")赋值会触发“Object doesn't support this property or method”错误。

而Evaluate可以直接解析命名常量的表达式返回值,所以读取操作正常。

修复代码

直接通过工作簿的Names集合修改该命名常量的值:

Sub CheckStuff()
    Dim currentRowCount As Long
    Dim fixedLastRow As Long
    
    ' 读取两个命名项的数值
    currentRowCount = Evaluate("Table1RowCount")
    fixedLastRow = Evaluate("Table1LastRowFixed")
    
    If currentRowCount > fixedLastRow Then
        ' 修改常量命名区域的值,注意RefersTo必须以=开头
        ActiveWorkbook.Names("Table1LastRowFixed").RefersTo = "=" & currentRowCount
    End If
End Sub

关键说明

  • 工作簿级命名常量属于Names集合对象,修改其值需操作RefersTo属性,且必须保留=前缀(Excel命名项的引用公式要求以等号开头)。
  • 可通过Excel「公式」选项卡的「名称管理器」验证:若Table1LastRowFixed的「引用位置」是类似=20的常量表达式,就属于此类情况;若指向单元格(如=Sheet1!$A$1),才可以用Range操作。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.18 00:26:04