使用VBA宏计算分子和分母

时间:2012-10-10 20:35:48

标签: excel-vba excel-2007 vba excel

我在使用excel VBA计算分子和分母时遇到问题。 num和den仅限于在Excel电子表格中输入数据的季度。

这是一个例子: 我的Excel工作表中有两列:

Date_data_entered_for each_person   Number of visits to the office
1/1/2009                                            5
1/10/2009                                           6
2/10/2009                                           7
5/12/2009                                           9

基于这个例子,我必须计算每季度的“平均访问次数”=访问量/人数。在2009年第一季度的这个例子中,数据为3人输入,总访问次数为5 + 6 + 7 = 18,因此平均值= 18/3 = 6。

我写的代码是:

Function Visits(target_timeframe)

    Target_Quarter = Format(target_timeframe, "YYYYq")

    For vRow = 2 To 2000

        entered_timeframe = Format(Sheets("sheet1").Range("A" & vRow).Value, "YYYYq")

        Entered_Visits = Sheets("sheet1").Range("B" & vRow).Value 'equals value of column

        If (entered_timeframe = Target_Quarter) Then
            denominator = denominator + 1
            If (Entered_Visits > 0) Then
                numerator = numerator + 1
            End If
        End If
    Next

    If denominator > 0 Then
        Average = numerator / denominator
    Else
        Average = "N/A"
    End If

End Function

我无法弄清楚代码有什么问题。它没有计算平均值。如果有人能帮我解决这个问题,我将非常感激。

谢谢你的时间!

1 个答案:

答案 0 :(得分:2)

我认为不是:

numerator = numerator + 1

你想:

numerator = numerator + Entered_Visits 

使用当前代码,您每次只需将1加到分子上,而实际上您希望将分数加入到分子中。