VBA阵列不起作用?

时间:2016-10-13 16:21:07

标签: vba excel-vba excel

我有5个订单价格的练习文件。目标是为每个记录添加20美元,并有一个消息框来显示结果。

以下是数据:

enter image description here

我的代码是:

Sub TotalDelivery()
Dim curDelCharge As Currency
Dim curTotal(4)

Dim i As Integer

Worksheets("Sheet1").Range("B10").Activate

Const curDelCharge = 20

For i = 0 To 4

curTotal(i) = ActiveCell.Offset(i, 1).Value + curDelCharge

MsgBox (curTotal(i))

Next i
End Sub

但是消息框只显示20,这只是我的curDelCharge值。

要进行调试,我将msgbox代码更改为:     MsgBox(ActiveCell.Offset(i,1).Value)

返回值为空,表示代码未读取我的ActiveCell值。那是为什么?

提前致谢!

2 个答案:

答案 0 :(得分:3)

这一行:

curTotal(i) = ActiveCell.Offset(i, 1).Value + curDelCharge

应改为:

curTotal(i) = ActiveCell.Offset(i, 0).Value + curDelCharge

设置“1”会将偏移1列向右移动,这是您不想要的。

答案 1 :(得分:1)

rdd1.union(rdd2).union(rdd3)