4

私は自分の問題の解決策を見つけようと、一日中仕事に費やしました。私のグーグル検索のほとんどがこのサイトに私を導いたので、私はあきらめて助けを求めることにしました.

株式ポートフォリオのポジションを含む Excel ファイルがあります。ポートフォリオ値の 5% を超えるポジションが合計でポートフォリオ値の 40% を超えるかどうかを即座に通知できるマクロを作成する方法を理解する必要があります。

私は VBA の基本的な理解があり、正しい列を選択する方法を知っていますが、5% (0.05) を超える位置のみを合計する方法がわかりません。さまざまな If 式を試しましたが、うまくいかないようです。

誰か道を教えてくれませんか?マクロで列をチェックし、位置 (>= 0.05) が 40% (0.40) を超えているかどうかを MsgBox に出力するだけです。

どうもありがとうございました!

列の例:

Weights
0.032
0.067
0.103
.
.
.
0.02
4

2 に答える 2

7

Doug Glancy のコメントから構築するには、これに SUMIF を使用できるはずです。ポートフォリオの重みが A2:A200 の範囲にあると仮定すると、これで必要なものが得られます。

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

于 2013-03-13T22:56:40.847 に答える
0

あなたの質問を正しく理解していれば、以下があなたの望むものだと思います。

Sub GetThreshold()

Dim myRng As Range
Dim pos As Double

Set myRng = ThisWorkbook.Sheets("Sheet1").Range("A2:A100")

For Each mycell In myRng
    If mycell.Value >= 0.05 Then
        pos = pos + mycell.Value
    End If
Next

If pos > 0.4 Then
    MsgBox "Position exceeds the threshold of 40%", vbCritical, "Position Break"
Else
    MsgBox "Position within the threshold of 40%", vbInformation, "Position Break"
End If

End Sub

お役に立てれば。

于 2013-03-14T10:52:08.733 に答える