Excel VBA:Intersect方法下新建工作表重命名报Error 424问题求助
解决VBA重命名工作表时的Error 424错误
问题根源
Error 424是对象要求错误,你的代码里错误地给Name属性加了.Value——工作表的Name本身就是字符串类型的直接属性,不存在Name.Value这个子对象,这才导致报错。
修正方案
方案1:修改右键点击触发的代码
复制工作表后直接引用新表对象,避免依赖默认的"(2)"命名(防止重复创建时命名变化导致找不到表),同时去掉多余的.Value:
Private Sub Worksheet_BeforeRightClick(ByVal Target As Range, Cancel As Boolean) Dim Active_Range As Range Dim newSheet As Worksheet Set Active_Range = Range("B6:F11") If Not Application.Intersect(Target, Active_Range) Is Nothing Then '复制并直接获取新工作表对象 Sheets("Employee Details").Copy after:=Sheets("Job Schedule") Set newSheet = ActiveSheet newSheet.Name = "Name One" End If End Sub
方案2:修改工作簿新建工作表的触发器
同样去掉.Value,直接给Name属性赋值,同时增加类型判断避免非工作表对象触发错误:
Private Sub Workbook_NewSheet(ByVal Sh As Object) If TypeName(Sh) = "Worksheet" Then Sh.Name = "Name One" End If End Sub
内容的提问来源于stack exchange,提问作者Frank
相关产品推荐
相关产品推荐

