修改Excel工作表名称(CodeName)并不简单

159 篇文章 16 订阅
39 篇文章 0 订阅

在Excel中修改工作表名称有什么可讲的,在工作表标签上点右键,选择重命名就可以了,恭喜你答对了一半。

另一半呢?除了这个名称外,工作表还有另外一个名称——CodeName,想修改这个名字就没那么简单了。一个工作表竟然有两个名字,这不是添乱吗!?
先看看CodeName在哪里,既然叫做CodeName,肯定和Coding相关了,打开VBE窗口。

工作表名称工作表CodeName
ShtNameSheet1
MyShtSheet2
Sheet3Sheet3

默认情况下,Excel创建的工作表,其名称和CodeName是一致的,如截图中的Sheet3,为了方便使用,大家经常会修改工作表名称,这时其CodeName并不改变,如截图中的另外两个工作表。
在VBE的属性窗口中第一栏“(名称)”是工作表的CodeName,大家可以在这个地方修改它;“Name”栏是Excel界面中看到的工作表名称。如何在代码中修改CodeName该如何处理呢?

Sub ChangeCodeName()
    Const SHT_NAME = "MySht"
    Dim strNewCodeName As String
    Dim strOldCodeName As String
    strOldCodeName = Sheets(SHT_NAME).CodeName
    On Error Resume Next
    ' DEMO1
    strNewCodeName = "Sheet1"
    ThisWorkbook.VBProject.VBComponents(strOldCodeName).Name = strNewCodeName
    If Err = 0 Then
        MsgBox "你要指定的CodeName已经存在", , "DEMO 1"
    Else
        MsgBox "指定的CodeName(" & strNewCodeName & ")已经存在", , "DEMO 1"
    End If
    ' DEMO2
    Err.Clear
    strNewCodeName = "SheetNew"
    ThisWorkbook.VBProject.VBComponents(strOldCodeName).Name = strNewCodeName
    If Err = 0 Then
        MsgBox "工作表(" & SHT_NAME & ")的CodeName改为:" & strNewCodeName, , "DEMO 2"
    Else
        MsgBox "指定的CodeName(" & strNewCodeName & ")已经存在", , "DEMO 2"
    End If
End Sub

此时,需要借助VBProject.VBComponents来处理,如果该CodeName已经存在,将产生运行时错误。运行代码,结果如下:

  • 2
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值