Excel 是什么导致我的类型不匹配?如何修复
我正在尝试进行平均if计算,但在VBA中没有工作表函数。我收到一个与此行相关的类型不匹配错误,但不知道为什么或如何修复Excel 是什么导致我的类型不匹配?如何修复,excel,vba,type-mismatch,Excel,Vba,Type Mismatch,我正在尝试进行平均if计算,但在VBA中没有工作表函数。我收到一个与此行相关的类型不匹配错误,但不知道为什么或如何修复 sumall=sumall+数据集(i,19) 子段触发返回() Application.ScreenUpdating=False Dim段_触发器为布尔值 Dim数据_设置为变量 数据集=范围(“A4:AV75617”) 我想我会坚持多久 对于i=2到UBound(数据集,1) 我想我会和你一样长 暗淡的碳纳米管 cnt=0 sumall=0 公司名称当前周期=数据集(i,
sumall=sumall+数据集(i,19)
子段触发返回()
Application.ScreenUpdating=False
Dim段_触发器为布尔值
Dim数据_设置为变量
数据集=范围(“A4:AV75617”)
我想我会坚持多久
对于i=2到UBound(数据集,1)
我想我会和你一样长
暗淡的碳纳米管
cnt=0
sumall=0
公司名称当前周期=数据集(i,3)
公司名称前期=数据集(i-1,3)
分段时间=数据集(i,10)
段=数据集(i-1,10)
如果公司名称\u curperiod=公司名称\u prevperiod和分段\u curperiod分段\u prevperiod,则
sumall=sumall+数据集(i,19)
cnt=cnt+1
如果结束
接下来我
如果cnt>0,则
板材(“控制”)。范围(“K6”)=sumall/cnt
如果结束
Application.ScreenUpdating=True
端接头
要调试代码,请运行此版本,并在代码停在“停止”行时,逐步查看数据集(i,19)是否为数字
Sub segment_trigger_returns()
Application.ScreenUpdating = False
Dim segment_trigger As Boolean
Dim data_set As Variant
data_set = Range("A4:AV75617")
Dim i As Long, s as string
For i = 2 To UBound(data_set, 1)
Dim sumall As Long
Dim cnt As Long
cnt = 0
sumall = 0
company_name_curperiod = data_set(i, 3)
company_name_prevperiod = data_set(i - 1, 3)
segments_curperiod = data_set(i, 10)
segments_prevperiod = data_set(i - 1, 10)
If company_name_curperiod = company_name_prevperiod And segments_curperiod <> segments_prevperiod Then
stop
s = data_set(i, 19)
If IsNumeric(s) then MsgBox "Yes, it's a number"
sumall = sumall + data_set(i, 19)
cnt = cnt + 1
End If
Next i
If cnt > 0 Then
Sheets("Control").Range("K6") = sumall / cnt
End If
Application.ScreenUpdating = True
End Sub
子段触发返回()
Application.ScreenUpdating=False
Dim段_触发器为布尔值
Dim数据_设置为变量
数据集=范围(“A4:AV75617”)
我像绳子一样长
对于i=2到UBound(数据集,1)
我想我会和你一样长
暗淡的碳纳米管
cnt=0
sumall=0
公司名称当前周期=数据集(i,3)
公司名称前期=数据集(i-1,3)
分段时间=数据集(i,10)
段=数据集(i-1,10)
如果公司名称\u curperiod=公司名称\u prevperiod和分段\u curperiod分段\u prevperiod,则
停止
s=数据集(i,19)
如果是数字,则MsgBox“是,这是一个数字”
sumall=sumall+数据集(i,19)
cnt=cnt+1
如果结束
接下来我
如果cnt>0,则
板材(“控制”)。范围(“K6”)=sumall/cnt
如果结束
Application.ScreenUpdating=True
端接头
你确定数据集(i,19)
正在返回一个数字吗?检查数据集(i,19)
是否属于长
类型(或可以隐式转换为长
的类型,如整数),你可以使用类型名
功能进行此操作。例如,如果data\u set(i,19)
的类型为String
,则至少在您将data\u set(i,19)
中的任何内容转换为可以添加到Long中的值之前,您无法添加它。