将数组与标量相乘并添加到VBA中

我在excel表格中有两列数据,大小相等,都只包含数字。

我试图写一个macros将这两个集合放入数组,然后对它们进行计算。 特别是ArrayA + 3*ArrayB然后将结果放回新列中的工作表中。 以下是我到目前为止的代码。

 Dim ArrayA As Variant Dim ArrayB As Variant Dim ArrayC As Variant ArrayA = Worksheets("Sheet1").Range("A1:A5") ArrayB = Worksheets("Sheet1").Range("B1:B5") 'this is where things go bad ArrayC = ArrayA + 3 * ArrayB 

你需要先制作一组数值。 那么确定你已经把数组展开了。

 Dim ArrayA As Variant Dim ArrayB As Variant Dim ArrayC() As Variant ArrayA = Worksheets("Sheet1").Range("A1:A5").Value ArrayB = Worksheets("Sheet1").Range("B1:B5").Value 'this is where things go bad 'ArrayC = ArrayA + 3 * ArrayB 'manually make array C the same size as array A ReDim ArrayC(LBound(ArrayA, 1) To UBound(ArrayA, 1), 1 To 1) Dim i As Long 'variable to count which section of the array we are on ' loop through each spot int he array and perform the math For i = LBound(ArrayA, 1) To UBound(ArrayA, 1) ArrayC(i, 1) = ArrayA(i, 1) + 3 * ArrayB(i, 1) Next i Worksheets("Sheet1").Range("C1:C5").Value = ArrayC 

注意上面的代码没有经过testing,所以我可能在某个地方有一个错字。 此外,使用redim时,您可能需要声明ArrayC的数据types而不是变体。 目前我无法testing,因为我从我的手机回答。