【发布时间】:2014-04-29 11:12:26
【问题描述】:
所以我以为我的任务是一个非常简单的目标,但事实证明我正在为此苦苦挣扎。
我想要执行一段非常简单的代码,其背后的想法是数字函数,这意味着它会跳过非数字单元格,只将数值放入计算中。伟大的。但是,我希望它将长度变量扩展 1,以便为每个空白添加一个额外的数字以保持 Length 的真实值相同。
但是我不能让它工作。我的数字函数似乎什么也没做。
有人可以帮忙吗?
Function RSE(MyCells As Range, Length As Double)
Dim up_day, down_day, ups, downs
Dim average_up, average_down
Dim rs, cellcount, rangecount As Long
Dim cll As Range
ups = 0
up_day = 0
downs = 0
down_day = 0
cellcount = 0
rangecount = 0
For Each cll In MyCells
If IsNumeric(cll) Then
cellcount = cellcount + 1
If cellcount = Length Then Exit For
If cll.Value >= cll.Offset(1, 0).Value Then
downs = downs + cll - cll.Offset(1, 0).Value
ElseIf cll.Value < cll.Offset(1, 0).Value Then
ups = ups + cll.Offset(1, 0).Value - cll.Value
End If
Else:
Length = Length + 1
End If
Next cll
average_up = ups / Length
average_down = downs / Length
rs = average_up / average_down
RSE = 100 - (100 / (1 + rs))
End Function
【问题讨论】:
-
空单元格可以计算为数字(零);因此 IsNumeric[some_blank_cell]) 将评估为 True。
-
感谢您的回答,所以我检查单元格是否为空白而不是是否包含数字更好。
-
如果您正在寻找空白,那么请务必进行测试。