【发布时间】:2013-11-15 08:47:18
【问题描述】:
我有一个代码可以满足我的需要。问题是我必须手动进行范围选择我想创建一个条件循环。
这是我目前使用的代码
Sub Worksheet_functions()
Dim Sumtotal As Long
Sumtotal = WorksheetFunction.Sum(Selection)
Range("e2").Value = Sumtotal
Range("h2").Value = Range("e2") + Range("h2")
End Sub
这就是我的数据的样子
Price Volume E H
10 100
10 50
10 80
9 100
9 50
8 100
8 100
10 50
10 250
目前我正在根据价格列中的值从上到下手动选择交易量列。
条件是
如果价格相同,请继续选择它们,直到它们不同为止
如果价格下跌,那么这些选定的单元格应在 e4 中求和并添加到 h4
如果价格上涨,那么这些选定的单元格应在 e2 中求和并添加到 h4
对于我的示例,这看起来像:
( H2: 100+50+80 +50+250 = 530 )
( H4: 100+50 +100+100 = 350 )
Price Volume
( 10 100
100+50+80 < ( 10 50
( 10 80
Above volume to H2
(9 100
100+50 < (9 50
Above volume to H4 ( because 10>9)
(8 100
100+100 < (8 100
Above volume to H4 ( because 9>8)
(10 50
50+250 < (10 250
Above volume to H2 ( because 8<10)
任何建议
如何使用条件使其循环?
如何编写考虑到最后价格的代码?
【问题讨论】:
-
按照你描述的方式,在 H4 中它只是
Summed。还是我错过了什么。您对预期结果的说明也很模糊。请详细说明。 -
是的,价格下跌的总和在H4,价格上涨的总和在H2。我将编辑预期结果以尝试使其更清晰
-
啊所以一定是
H4: 100+50+80, 100+50, 100+100然后H2: 50+250对吧? -
好的,我明白了。现在正在处理您可能的代码... :)
-
将卷视为块。前 3 个区块进入 H2。然后价格变为 9。9 小于 10,因此 9 的块进入 H4。 8 比 9 小,因此 8 的块进入 H4。 10 比 8 大,因此 10 的块进入 H2。我知道我需要一些 for 循环和 if 语句
标签: loops excel if-statement vba