VBA乘以两个命名的范围

我一直试图在这个地方看到这个,我似乎无法find答案或让它工作。

我有代码

'Define Variables for cell ranges' Dim BidItem As Range Dim BidItemDes As Range Dim BidItemUnit As Range Dim BidItemQTY As Range Dim BidItemUP As Range 'Store the sheet range into the variables' Set BidItem = Sheets("BidItems").Range("A1:A" & Range("A1").End(xlDown).Row) Set BidItemDes = Sheets("BidItems").Range("B1:B" & Range("B1").End(xlDown).Row) Set BidItemUnit = Sheets("BidItems").Range("C1:C" & Range("C1").End(xlDown).Row) Set BidItemQTY = Sheets("BidItems").Range("D1:D" & Range("D1").End(xlDown).Row) Set BidItemUP = Sheets("BidItems").Range("E1:E" & Range("E1").End(xlDown).Row) Set BidItemValue = Sheets("BidItems").Range("F1:F" & Range("F1").End(xlDown).Row) Set BidItemValue = Sheets("BidItems").Range("F1:F" & Range("F1").End(xlDown).Row) 

我需要做的是将BidItemQTY范围内的所有数据与BidItemUP范围相乘,然后将该答案输出到范围BidItemValue。

我有最后一行代码设置来启动函数,但我似乎无法掌握如何使用variables在VBA中进行math函数。

考虑这个小例子:

 Sub dural() Dim second As Range Dim first As Range, prodt As Long Set first = Range("A1:A3") Set second = Range("B1:B3") prodt = Application.WorksheetFunction.SumProduct(first, second) MsgBox prodt End Sub 

在这里输入图像说明

编辑#1:

要获得存储在单元中的单个产品,请使用:

 Sub dural() Dim second As Range Dim first As Range, prodt As Long Dim third As Range Set first = Range("A1:A3") Set second = Range("B1:B3") Set third = Range("C1:C3") For i = 1 To 3 third(i, 1) = first(i, 1) * second(i, 1) Next i End Sub 

在这里输入图像说明

笔记:

  • 由于范围不是单个单元格,因此我们将它们视为二维
  • 使用Transpose()可能会避免循环
  • 在这种情况下,一维也将工作:

 For i = 1 To 3 third(i) = first(i) * second(i) Next i