Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/vba/16.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Excel VBA未经检验的子错误结束_Excel_Vba_Function - Fatal编程技术网

Excel VBA未经检验的子错误结束

Excel VBA未经检验的子错误结束,excel,vba,function,Excel,Vba,Function,我发现以下VBA代码用于对彩色单元格求和,但在倒数第二行出现意外的语句结束错误: Function SumByColor(CellColor As Range, SumRange As Range) Application.Volatile Dim ICol As Integer Dim TCell As Range ICol = CellColor.Interior.ColorIndex For Each TCell In SumRange

我发现以下VBA代码用于对彩色单元格求和,但在倒数第二行出现意外的语句结束错误:

Function SumByColor(CellColor As Range, SumRange As Range)
    Application.Volatile
    Dim ICol As Integer
    Dim TCell As Range
    ICol = CellColor.Interior.ColorIndex
    For Each TCell In SumRange
        If ICol = TCell.Interior.ColorIndex Then
            SumByColor = SumByColor + TCell.Value
        End If
    Next TCell
End Function

Sub Count_red()
 =SumByColor(AC4,J2:AK1725)
End Sub
编辑:我根据你的建议调整了最后一点

Sub Count_red()
函数Count_red()为双精度
Count_red=SumByColor([AC4],[J2:A1725])
端函数
末端接头

尝试运行代码时出现的新错误消息:“检测到不明确的名称:Count_red()”

这是一项毫无意义的任务

根据这些名字,我猜应该是

Function Count_red()
    Count_red=SumByColor([AC4],[J2:AK1725])
End Function
这是一项毫无意义的任务

根据这些名字,我猜应该是

Function Count_red()
    Count_red=SumByColor([AC4],[J2:AK1725])
End Function

我想我们离这里越来越近了。:)我将您的代码粘贴到上面的代码中。然而,我得到了一个新的错误,说“预期:列表分隔符或”。当我删除范围时,只将J2保留在J2:AK1725上,他似乎不再有问题了。但是,我需要他在脚本中使用Excel应用程序的当前上下文搜索一个范围..
SumByColor(“AC4”,“J2:AK1725”)
或传递一个显式的
range
对象。@Mattpery
range(“AC4”),range(“J2:AK1725”)
,因为sub还需要一个范围对象而不是地址:)@ykjk,当您根据此处的建议修改代码时,请回答您的问题,使其包含您当前尝试使用的代码,否则任何人都很难帮助您。我尝试了
SumByColor(Range(“AC4”)、Range(“J2:A1725”)
以及
SumByColor([AC4]、[J2:AK1725])
这两种方法似乎都很好,但当我尝试运行Makro时,会弹出错误消息“检测到不明确的名称:Count_red()”。我想我们离这里越来越近了。:)我将您的代码粘贴到上面的代码中。然而,我得到了一个新的错误,说“预期:列表分隔符或”。当我删除范围时,只将J2保留在J2:AK1725上,他似乎不再有问题了。但是,我需要他在脚本中使用Excel应用程序的当前上下文搜索一个范围..
SumByColor(“AC4”,“J2:AK1725”)
或传递一个显式的
range
对象。@Mattpery
range(“AC4”),range(“J2:AK1725”)
,因为sub还需要一个范围对象而不是地址:)@ykjk,当您根据此处的建议修改代码时,请回答您的问题,使其包含您当前尝试使用的代码,否则任何人都很难帮助您。我尝试了
SumByColor(Range(“AC4”)、Range(“J2:A1725”)
以及
SumByColor([AC4]、[J2:AK1725])
这两种方法似乎都很好,但当我尝试运行Makro时,会弹出错误消息“检测到不明确的名称:Count_red()”。