在VBA中循环计算

时间:2018-02-07 19:18:37

标签: excel-vba vba excel

我创建了一个迭代遍历每一行的循环,我希望它为每一行中的每一列添加值,并在结尾处对它们求和。我知道如何将其作为一个公式,但我是VBA的新手。我希望它将值乘以列BF的权重因子然后输出列G中的值。我知道我需要使用for循环来遍历非空白的每一行,因为该数量将随着工作表的变化而变化已更新。公式版本为:

`=((5*(i,1))+(4*(i,2))+(3*(i,3))+(2*(i,4))+(1*(i,5))` 

我希望这个值输出到单元格(i,6)

到目前为止,我有:

`set wbk1 = Application.ActiveWorkbook
lr = wbk1.Sheets("sheet3").Cells(Rows.Count, 1).End(xlUp).Row
For i = 1 to Rows.Count
If i < lr Then
End If
Next i`

循环中间的公式部分是我相信的地方。

谢谢!

1 个答案:

答案 0 :(得分:1)

试试这个。您可以使用范围或单元格表示法,但在这种情况下,后者似乎更直观。也就是说,你最好使用工作表公式。

Sub x()

Dim wbk1 As Workbook
Dim lr As Long, i As Long

Set wbk1 = Application.ActiveWorkbook

With wbk1.Sheets("Sheet3")
    lr = .Cells(Rows.Count, 1).End(xlUp).Row
    For i = 2 To lr
        .Cells(i, "G") = 5 * .Cells(i, "B") + 4 * .Cells(i, "C") + 3 * .Cells(i, "D") + _
                      2 * .Cells(i, "E") + .Cells(i, "F")
    Next i
End With

End Sub