我创建了一个迭代遍历每一行的循环,我希望它为每一行中的每一列添加值,并在结尾处对它们求和。我知道如何将其作为一个公式,但我是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`
循环中间的公式部分是我相信的地方。
谢谢!
答案 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