【发布时间】:2013-04-19 08:03:17
【问题描述】:
虽然我在写之前大致了解了我的编码,但我已经忘记了如何解释它的前几部分(粗体)。
为什么是“长”?我的理解是,当变量只取更大的整数值时使用它。由于份额值包含多个小数,我不知道为什么我选择了这个而不是“双倍”。
我们为什么/何时将变量调暗为“范围”,为什么我们要使用“设置”?我对 set 函数用途的有限理解是将值分配给“对象”变量。为什么“范围”是“对象”?
我完全忘记了 Set stockValue = Range("B5:B" & lastStockprice) 这行在做什么,尤其是 & 符号。
我不知道这里发生了什么:
重新调整 stockPrice(stockValue.Count - 1) 对于每个单元格 In stockValue stockPrice(cell.Row - 5) = cell.Value 下一步
Sub MovingAverage()
Dim CumulSum() As Double
Dim MovingAv() As Double
RowCountA = Range("StockPrice").Rows.Count
RowCountB = Range("MovingAv").Rows.Count
ReDim CumulSum(RowCountB)
Dim stockPrice As Variant
Dim lastStockprice **As Long**
lastStockprice = Cells(Rows.Count, "B").End(xlUp).Row
Dim stockValue **As Range**
**Set stockValue = Range("B5:B" & lastStockprice)**
**ReDim stockPrice(stockValue.Count - 1)
For Each cell In stockValue
stockPrice(cell.Row - 5) = cell.Value
Next**
For i = 0 To RowCountB - 1
For k = 0 To 9
CumulSum(i) = CumulSum(i) + stockPrice(i + k)
Next k
Next i
For i = 1 To RowCountB
Range("MovingAv").Cells(i) = CumulSum(i - 1) / 10
Next i
结束子
如果有人可以为我解释粗体代码(我对 VBA 有非常基本的了解,可以扩展到矩阵乘法、基本函数和双精度数组),我将不胜感激。 :)
【问题讨论】:
-
这就是为什么你应该总是在你的代码中添加描述性 cmets :)