2016-04-01 14 views
0

こんにちは、私は次のような問題があります。VBAダイナミックレンジ値の計算と

あなたは、列Aで見ることができるように、私たちは常に「1」がある列Bで、日付を持っている場合、次の1から年間の変化私はそれを黄色でマークした。列Hには異なる値があり、列Iには1年以内に10%以上(この場合は列Bの1から1までの期間)のFIRST値のみが必要です。その後、私は次の最初の値を持っています。これは翌年に10%を超えているので、次の期間はB列の1から1になります。

誰でも手伝ってもらえますか?

これまでのところ、私はこれをプログラムしましたが、すべての値が10%を超えていますが、各範囲の最初のものは表示されません。

Sub ABC() 
With ThisWorkbook.Worksheets("Test") 
rowCount = 2 
    Do While .Cells(rowCount + 1, 8).Value <> "" 

    If .Cells(rowCount, 2).Value = 0 And .Cells(rowCount, 8).Value >= 0.1 Then 

     .Cells(rowCount, 9).Value = .Cells(rowCount, 7).Value * 0.1/1.1 
    Else 
     .Cells(rowCount, 9).Value = "" 
    End If 
    rowCount = rowCount + 1 

Loop 

End With 
End Sub 

image

+0

上のエラーである私は、トラブルあなたはHがで> 5である列の横に値」によって何を意味するかを理解しています1から1 "の範囲である。それが5より大きい場合、どのようにして1から1の範囲内にありますか?また、なぜ世界では「1から1の範囲」というフレーズを使用するのですか?その範囲内の唯一の数字は1です。 *おそらく*は、列Bの値が0である連続した行の範囲のようなものを意味しますが、そうであれば、より明確に言う必要があります。列Hの値および列Iの意図された値を含む適切なサンプルデータセットが役立つだろう。 –

+0

私の質問が更新されました。うまくいけば今理解しやすいです: – ChristianW

答えて

0

これは、コードを思えセルアドレス

Sub ABC() 
With ThisWorkbook.Worksheets("Test") 
rowCount = 2 
    Do While .Cells(rowCount + 1, 8).Value <> "" 

    If .Cells(rowCount, 2).Value = 0 And .Cells(rowCount, 8).Value >= 0.1 Then 

     .Cells(rowCount, 9).Value = .Cells(rowCount, 8).Value * 0.1/1.1 
    Else 
     .Cells(rowCount, 9).Value = "" 
    End If 
    rowCount = rowCount + 1 

Loop 

End With 
End Sub 
+0

これは私を助けません... – ChristianW

関連する問題