Excel VBA:如何仅将大于特定值的值相加?

mik*_*eln 4 excel vba sum excel-vba

我整天都在努力寻找解决问题的方法.我的大多数googleing都把我带到了这个网站,所以我决定放弃并寻求帮助.

我有一个包含股票投资组合头寸的Excel文件.我需要弄清楚如何编写一个宏,可以立即告诉我那些超过投资组合价值5%的头寸是否超过投资组合价值的40%.

我对VBA有一些基本的了解,我知道如何选择正确的列,但我无法弄清楚如何只对那些超过5%(0.05)的位置求和.我尝试了不同的If表达式,但我似乎无法正确使用它.

有人可以告诉我的方式吗?我只需要宏来检查我的列,然后在MsgBox中打印位置(> = 0.05)是否超过40%(0.40).

非常感谢你!

示例列:

Weights
0.032
0.067
0.103
.
.
.
0.02
Run Code Online (Sandbox Code Playgroud)

Kev*_*ope 7

为了建立Doug Glancy的评论,你应该能够使用SUMIF.假设您的投资组合权重在A2:A200范围内,这将为您提供所需:

=SUMIF(A2:A200,">=0.05")

  • @mikaeln你可以很容易地在VBA中使用这个解决方案; `msgbox Application.WorksheetFunction.SumIf(Range("A2:A200"),"> = 0.05")` (3认同)