VBA;将两个范围乘以相对参考

时间:2016-03-11 09:18:58

标签: vba excel-vba excel-2010 excel

我想在G列中使用没有5%异常值的数据集对范围进行sumproduct。第一步是我计算整列中的数字量,排序,乘以0.05,然后清除顶部和底部5%。下一步是设置两个乘以的范围(Colmuns C& G)。

我知道sumproduct是一个数组公式。你能救我吗?

子测试

Sheets.Add.Name = "Data"

Sheets("Worksheet").Select

Dim c As Integer
Dim i As Integer
Dim w As Integer
Dim x As Integer
Dim y As Integer
Dim z As Integer
Dim r As Range
Dim s As Range
Dim t As String

c = Worksheets("Worksheet").Range("G:G").Cells.SpecialCells(xlCellTypeConstants).Count
i = Round(0.05 * c, 0)
w = i + 1
x = i + 2
y = c - i + 2
z = c - i + 1
Set r = Worksheets("Worksheet").Range(Cells(x, 3), Cells(z, 3))
Set s = Worksheets("Worksheet").Range(Cells(x, 7), Cells(z, 7))

范围R和s不起作用

我希望看到的是     范围(" A3")。值=" = Sumproduct(范围(r,s)/ SUM(r)"。 最后一步是获得加权平均值。

我认为一个简单的VBA代码,但我很难找到。 非常感谢!

1 个答案:

答案 0 :(得分:0)

您需要正确评估所有RangeCells来电:

With Worksheets("Worksheet")
    Set r = .Range(.Cells(x, 3), .Cells(z, 3))
    Set s = .Range(.Cells(x, 7), .Cells(z, 7))
End With
Range("A3").Value = Application.Sumproduct(r, s)/Application.SUM(r)