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

使用Excel VBA的Names.Add为工作表添加名称时RefersTo异常

使用Worksheets.Names.Add添加工作表级名称时RefersTo被异常修改的问题

在使用Worksheets("...").Names.Add方法添加工作表级名称时,出现RefersTo字符串被异常修改的问题,导致添加的名称指向无效。以下是详细测试说明及代码:

测试准备

  • 创建新的xlsm文件,将下方VBA代码存入模块
  • 创建名为"Test Wrksht 3"的工作表
    -(可选)在该工作表的A1、A2单元格输入唯一字符串
  • 选中"Test Wrksht 3"的A1单元格后运行宏
  • 预期结果:添加关联该工作表的名称"WS3_A1",指向该表的$A$1;实际结果:名称关联工作表正常,但指向变为'Z1S1',不符合预期。

测试代码

Sub Test2_AddingName_RefersTo_WS3_A1()
'
' 测试准备
' 1. 创建新xlsm文件,将此Sub存入模块
' 2. 创建名为"Test Wrksht 3"的工作表
' 3.(可选)在该工作表A1、A2单元格输入唯一字符串
' 4. 选中"Test Wrksht 3"的A1单元格后运行此宏
' 5. 预期:添加一个关联该工作表(而非工作簿)的名称,指向"Test Wrksht 3"的$A$1
'    实际结果记录如下
'
' Microsoft官方文档说明:
' Name.RefersTo 属性返回或设置名称所引用的公式,使用宏语言和A1样式表示法,以等号开头,可读写字符串。
'
'
' 实际观察结果(见截图):
' 1. 名称"WS3_A1"成功添加 =正常
' 2. 名称关联到工作表"Test Wrksht 3" =正常
' 3. 名称指向变为'Z1S1' =异常;预期应为$A$1
'
    ActiveWorkbook.Worksheets("Test Wrksht 3").Names.Add Name:="WS3_A1", _
        RefersTo:="='Test Wrksht 3'!$A$1"
    ActiveWorkbook.Worksheets("Test Wrksht 3").Names("WS3_A1").Comment = ""
End Sub

异常现象截图

Excel名称管理器中可见RefersTo字符串已被修改:
Excel名称管理器截图,显示WS3_A1的引用变为'Z1S1'

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.21 03:58:38