gpt4 book ai didi

arrays - 在 VBA 中将数组与标量相乘并相加

转载 作者:行者123 更新时间:2023-12-03 02:58:31 25 4
gpt4 key购买 nike

我在 Excel 工作表中有两列数据,它们大小相等,并且都只包含数字。

我正在尝试编写一个宏,将这两个集合放入数组中,然后对它们执行计算。具体来说,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

注意上面的代码未经测试,所以我可能在某个地方有拼写错误。另外,在使用 redim 时,您可能需要声明 ArrayC 的数据类型而不是变体。我目前无法测试,因为我正在通过手机接听。

关于arrays - 在 VBA 中将数组与标量相乘并相加,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12979034/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com