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

VBA循环中如何同时使用工作表名称和Code Name引用工作表?

报错原因

Sheets 集合的索引仅支持两种参数类型:工作表的显示名称(字符串类型)、工作表的序号(数字类型)。你直接将作为Code Name的Sheet03传入数组,Sheet03本身是Worksheet对象,和数组中其他字符串类型的元素类型不一致,传给Sheets集合后无法识别,因此触发类型不匹配报错。

可行解决方案
  • 方案1(最推荐,执行效率更高):直接构造Worksheet对象数组遍历,无需通过Sheets集合二次查找
For Each WS In Array(Sheets("Sheet1"), Sheets("Sheet2"), Sheet03)
    ' 此处写你原本的工作表处理逻辑
Next
  • 方案2(保留原代码结构):取Code Name对应工作表的显示名称传入,统一数组元素为字符串类型
For Each WS In Sheets(Array("Sheet1", "Sheet2", Sheet03.Name))
    ' 此处写你原本的工作表处理逻辑
Next
补充说明

使用Code Name引用工作表稳定性远高于直接写显示名称:Code Name仅能在VBA编辑器的属性面板中修改,普通用户在Excel界面修改工作表显示名称不会影响Code Name的引用,代码不会因此失效。


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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.27 05:24:03