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

Runtime error 449 Argument not optional报错及代码修复求助

搞定VBA里的Runtime Error 449问题

嘿,我来帮你解决这个报错!首先得说,你代码里的Worksheets(i).Names用错了——这个属性是用来获取工作表里的命名区域集合(比如你定义的那些单元格名称),而不是工作表本身的名称。你要判断的是工作表名称是否匹配Var_Name,得用单数的Worksheets(i).Name,这才是获取单个工作表名称的正确属性。

修复后的完整代码

' 先声明所有变量(好习惯,避免变体类型坑)
Dim i As Integer
Dim Exists As Boolean
Dim Exists_Counter As Integer
Dim Var_Name As String ' 根据你的实际场景调整类型,确保是字符串

' 初始化变量,避免残留值影响结果
Exists = False
Exists_Counter = 0

For i = 1 To Worksheets.Count
    ' 用Worksheets(i).Name获取工作表名称
    If Worksheets(i).Name = Var_Name Then
        Exists = True
        Exists_Counter = Exists_Counter + 1
    End If
Next i

几个额外的小提醒

  • 一定要声明Var_Name的类型!如果它是未声明的变体类型,可能会因为类型不匹配触发类似错误,最好明确设为String。
  • VBA默认字符串区分大小写,如果需要忽略大小写匹配,可以改成:If UCase(Worksheets(i).Name) = UCase(Var_Name) Then
  • 循环变量i也记得声明,别用默认的变体类型,用Integer或者Long都可以。

内容的提问来源于stack exchange,提问作者O.r.A.j.C

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.15 07:45:03