VBA Excel计数函数中的类型不匹配错误

问题描述:

我一直在试图找出这个问题的论坛。我在每个订单项中都有一个具有特定日期和美元价值的数据表。我想在每个月的数字和每个月创建一个美元的总和。我发现,我以为会工作的功能,并修改它来满足我的需求:VBA Excel计数函数中的类型不匹配错误

Public Function MonthOppCount(rng As Range, sdate As Date, edate As Date) As Long 

    Dim Cel As Range 
    Dim MonthCount As Integer 
    Dim MonthRev As Long 

     For Each Cel In rng 
      If Cel >= sdate And Cel < edate Then 
       ' MonthCount = MonthCount + 1 
       MonthRev = MonthRev + ActiveCell.Offset(0, -3).Value 
      End If 
     Loop 

    MonthOppCount = MonthRev 
    ActiveCell.Offset(0, 1).Value = MonthCount 

End Function 

然后我从另一个调用子程序功能:

范围(“P5000”)值= MonthOppCount(“H5。 :H5000“,Month1,Month2)

我收到H5:H5000突出显示的类型不匹配错误。有任何想法吗?或者,一个简单的方法来完成目标?我不能只在一个单元格中设置这个函数,因为涉及到3个工作表,而主代码并不是可以从中获取这些数据的地方。

感谢, 吉赛尔

“H5:H5000” 只是一个字符串; VBA不会自动将其转换为范围。改变,从你的调用函数的行:

Range("P5000").Value = MonthOppCount("H5:H5000", Month1, Month2) 

到:

Range("P5000").Value = MonthOppCount(Range("H5:H5000"), Month1, Month2)