2017-07-09 8 views
-1

よく動作する基本ループを作成しましたが、数値ヘッダーがある場合は行1を無視する必要があります(以前はOn Error Resume NextをString Headersに使用しましたが、状況を処理する最善の方法でした)。基本的には、ループを2行目から開始したいと思います。Loopが1行目をスキップするまで実行する

Sub DoTest() 


Dim i As Long 
i = 1 

Do 



Cells(i, 3).Value = Cells(i, 1)/Cells(i, 2) 

i = i + 1 


Loop Until IsEmpty(Cells(i, 2)) And IsEmpty(Cells(i, 1)) 

Range("C1").Select 
End Sub 

答えて

2

あなたが現在最初の行が非空であることを確認する前に除算を実行しようとしているとして、あなたはおそらく、whileループを使用する必要がありますi=2

にラインi=1を変更する必要があります。おそらくCells.Valueも必要です。

Sub DoTest() 

    Dim i As Long 
    i = 2 

    while not IsEmpty(Cells(i, 2)) And not IsEmpty(Cells(i, 1)) 

     Cells(i, 3).Value = Cells(i, 1).Value/Cells(i, 2).Value 

     i = i + 1 

    wend 

    Range("C1").Select 

End Sub 
+0

テスト済みです - ありがとうございます!私はまた、 "On Error Resume Next"行を追加したので、0で除算されたときに停止しません。私はタイマーが私にできるようになったらボックスにチェックをつけます。 –

+3

あなたは間違った状況でエラーを黙ってスキップすることを絶対に確信しています。「次回エラー時には再開」は非常に危険です! – JeffUK

+0

それは良い点です。代わりに単純なIF THEN文を使用するように修正しました。ありがとう! –

関連する問題