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
非常好,非常好用,谢谢你的解释。非常好,非常好用,谢谢你的解释。