Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/vba/14.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 - Fatal编程技术网

Excel VBA:对每行最右边的单元格求和?

Excel VBA:对每行最右边的单元格求和?,excel,vba,Excel,Vba,我有一个数据集,看起来类似于下面 我只想平均最右边一列中的数据 我的范围从C4开始,没有设置行或列的结束 **1** 1 **2** 1 2 **3** 1 **2** **1** 我已经把下面的内容放在一起,这就是我需要它对单个固定列所做的,但我不知道如何将其展开,以便始终使用最右边列中的值 Dim Sum, Count As Integer Count = 0 Sum = 0 Application.ScreenUpdating = False

我有一个数据集,看起来类似于下面

我只想平均最右边一列中的数据

我的范围从
C4
开始,没有设置行或列的结束

**1** 
1 **2** 
1 2 **3** 
1 **2**
**1**
我已经把下面的内容放在一起,这就是我需要它对单个固定列所做的,但我不知道如何将其展开,以便始终使用最右边列中的值

Dim Sum, Count As Integer

       Count = 0
       Sum = 0

    Application.ScreenUpdating = False

       Range("C4").Select
       Do While ActiveCell.Value <> ""

           Sum = Sum + ActiveCell.Value
           Count = Count + 1
           ActiveCell.Offset(1, 0).Activate

       Loop

       Range("O1").Value = Sum / Count
点心,按整数计算
计数=0
总和=0
Application.ScreenUpdating=False
范围(“C4”)。选择
当ActiveCell.Value“”时执行此操作
Sum=Sum+ActiveCell.Value
计数=计数+1
ActiveCell.Offset(1,0).激活
环
范围(“O1”)。值=总和/计数

谢谢。

这将循环行

匹配将返回最后一列的列号,其中包含一个数字

然后我们得到该列中该行的数字,并将其添加到数组中

然后在循环之后,我们对数组求平均值

Sub aver()
    With Worksheets("Sheet4") 'Change to your sheet
        Dim lastrw As Long
        lastrw = .Cells(.Rows.Count, 3).End(xlUp).Row

        Dim num() As Variant
        ReDim num(1 To lastrw) As Variant

        Dim i As Long
        For i = 4 To lastrw
            Dim j As Long

            j = Application.Match(1E+99, Rows(i), 1)
            num(i) = .Cells(i, j).Value

        Next i

        .Range("O1").Value = Application.Average(num)
    End With
End Sub

这将循环行

匹配将返回最后一列的列号,其中包含一个数字

然后我们得到该列中该行的数字,并将其添加到数组中

然后在循环之后,我们对数组求平均值

Sub aver()
    With Worksheets("Sheet4") 'Change to your sheet
        Dim lastrw As Long
        lastrw = .Cells(.Rows.Count, 3).End(xlUp).Row

        Dim num() As Variant
        ReDim num(1 To lastrw) As Variant

        Dim i As Long
        For i = 4 To lastrw
            Dim j As Long

            j = Application.Match(1E+99, Rows(i), 1)
            num(i) = .Cells(i, j).Value

        Next i

        .Range("O1").Value = Application.Average(num)
    End With
End Sub

非常好,非常好用,谢谢你的解释。非常好,非常好用,谢谢你的解释。