VBA新增工作表时报错this action won't work on multiple selections求助
报错核心原因
你代码的执行顺序存在逻辑错误:仅声明sh为工作表类型变量后,还未给它绑定实际的工作表对象就直接修改Name属性,此时sh是空值(Nothing),对空对象操作属性必然触发报错。你需要先完成工作表新增、给sh赋值的操作,再修改工作表名称。
修正后的代码示例:
Dim sh as Worksheet ' Debug.Print "Before" Set sh = Sheets.Add(After:=Sheets(Sheets.count)) sh.Name = "Output" ' Debug.Print "Middle" ' Debug.Print "After"
该报错的其他常见诱因
除了你搜索到的选中区域大小不一致的情况外,以下场景也会触发该报错:
- 操作的对象未初始化/是空值,就是你本次遇到的情况,部分Excel版本会抛出这个模糊的多选错误提示
- 同时选中了多个不连续的工作表,尝试给其中未激活的工作表修改名称、设置格式
- 要设置的工作表名称已存在,或者包含
/ \ ? * [ ]等非法字符,部分版本Excel会误报该错误而非提示名称不合法 - 目标工作表处于保护锁定状态,未解锁就尝试修改名称等属性
内容的提问来源于stack exchange,提问作者Carla Hinoztronza
相关产品推荐
相关产品推荐

