2016-04-13 2 views
0
Sub Update_cell() 

Dim counter As Integer 
For counter = 7 To 606 
    If Worksheets("Sheet1").Cells(counter + 1, 4).Value > (Worksheets("Sheet1").Cells(counter, 4).Value + Worksheets("Sheet1").Cells(1, 1).Value) Then 
    Worksheets("Sheet1").Cells(counter, 4).Value = (Worksheets("Sheet1").Cells(counter, 4).Value + Worksheets("Sheet1").Cells(1, 1).Value) 
    Worksheets("Sheet1").Cells(counter + 1, 4).Value = Worksheets("Sheet1").Cells(counter + 1, 4).Value - 1 * (Worksheets("Sheet1").Cells(counter + 1, 4).Value - Worksheets("Sheet1").Cells(counter, 4).Value) 
    Worksheets("Sheet1").Cells(counter, 13).Value = -1 * (Worksheets("Sheet1").Cells(counter + 1, 4).Value - Worksheets("Sheet1").Cells(counter, 4).Value) 
    End If 
    If Worksheets("Sheet1").Cells(counter + 1, 4).Value < (Worksheets("Sheet1").Cells(counter, 4).Value - Worksheets("Sheet1").Cells(1, 1).Value) Then 
    Worksheets("Sheet1").Cells(counter, 4).Value = (Worksheets("Sheet1").Cells(counter, 4).Value - Worksheets("Sheet1").Cells(1, 1).Value) 
    Worksheets("Sheet1").Cells(counter + 1, 4).Value = Worksheets("Sheet1").Cells(counter + 1, 4).Value - 1 * (Worksheets("Sheet1").Cells(counter + 1, 4).Value - Worksheets("Sheet1").Cells(counter, 4).Value) 
    Worksheets("Sheet1").Cells(counter, 13).Value = -1 * (Worksheets("Sheet1").Cells(counter + 1, 4).Value - Worksheets("Sheet1").Cells(counter, 4).Value) 
    End If 
    If Worksheets("Sheet1").Cells(counter + 1, 4).Value <= (Worksheets("Sheet1").Cells(counter, 4).Value + Worksheets("Sheet1").Cells(1, 1).Value) And Worksheets("Sheet1").Cells(counter + 1, 4).Value >= (Worksheets("Sheet1").Cells(counter, 4).Value - Worksheets("Sheet1").Cells(1, 1).Value) Then 
    Worksheets("Sheet1").Cells(counter, 4).Value = Worksheets("Sheet1").Cells(counter + 1, 4).Value 
    End If 
    Next counter 
End Sub 

上記は私が前のセルからどのくらい離れているかに基づいてセルを更新するためのコードです。最初は、「指定されたディメンションが現在のグラフタイプに対して無効です」というエラーが表示されました。私は既に存在していたチャートを削除しましたが、今度は "下付き文字が範囲外です、ランタイムエラー9"と言うエラーが出ます。デバッグしようとすると、最初のIfステートメントが強調表示されます。列内の前のセルとセルを比較し、その差に基づいてセルを新しい値に更新します。

ご協力いただきまして誠にありがとうございます。どうもありがとうございました!

+0

通常これは、Sheet1が存在しないことを意味します。それは別の名前ですか? –

+0

@ScottCraner私は回答メイトとして投稿したい、間違いなく根本的な原因と思われる – AranDG

+0

ありがとう、@ScottCraner。あなたの答えはとても役に立ちました。なぜ私はそのような小さなディテールを見逃したのか分かりません。経験にもっと注意を払う必要があります。私はVBAプログラミングの初心者です。 –

答えて

0

@Scott Cranerが私の質問に対する答えをコメントセクションに提供しました。私はシートの実際の名前の代わりにシート名としてSheet1を使用していました。次回はもっと注意が必要です。

もう一度Scott!

関連する問題