2017-08-22 12 views
0

を変数のすべてのインスタンスを合計:I17:が、私はこのコードを持っている範囲VBAで

Sub yeartest() 
Dim cell As Range 
storeval = 0 
For Each cell In Range("I7:I17") 
If cell.Value = "THISVALUE" Then 

Let storeval = cell.Offset(-1, 0).Value 


End If 

Range("Q18").Activate 
ActiveCell.Formula = "=SUM(storeval)" 
Next cell 
End Sub 

コードは何をすべきことは、範囲I7を分析しています。値がTHISVALUEのこの範囲のセルが検出されるたびに、セルが1つ右に移動してその値を格納する必要があります。全範囲を分析した後、THISVALUEの右にあるすべてのセルの合計をセルQ18に出力する必要があります。

現在、セルQ18は、マクロを実行すると#NONAME値を表示します。

+1

「THISVALUE」の直前の値を合計しようとしていますか? –

+0

プラス 'storeval'はちょうど1つの値です。なぜなら、それを合計する理由は:Range(" Q18 ")。Value = storeval'あなたは' Let'を必要としません。 –

+0

これは式で行えます: '= SUMIF (I7:I17、 "THISVALUE"、I6:I16) ' –

答えて

0
Sub yeartest() 
    Dim cll As Range 
    storeval = 0 
    For Each cll In Range("I7:I17") 
     If cell.Value = "THISVALUE" Then 
      storeval = storeval + cell.Offset(-1, 0).Value 
     End If 
    Next cll 
    Range("Q18")=storeval 
End Sub 
+0

OPと今後の読者に役立つあなたのコードの説明を追加してください。 –

関連する問題