2016-05-03 12 views
0

私は1つの列全体でセルをチェックするマクロを作成しています。私は最初のセルを2番目のセルと比較し、2番目のセルは3番目のセルと比較します。次のセルが前のセルよりも小さい場合は、それらの間にゼロの行全体を追加します。マクロelse if文

私はこのようなものがあります:

Sub hello() 
    For i = 1 To 10000 
     If (C1 - C2 > 1) Then 
      C2.EntireRow.Insert 
     End If 
    Next i 
End Sub 

をしかし、それは失敗し、それを行うための正しい方法は何ですか?

+0

どのように失敗しますか?具体的にしてください。 –

答えて

-1

まず、10000値を行ステートメントの末尾に変更しました。したがって、すべてのケースでForループを変更したり、不要なループを取り除いたりする必要はありません。新しい行を挿入した後、i値を2つ増分して、差異のために作成された空の行をスキップする必要があります。また、新しい行を追加するときは、Excelが新しい行を追加してデフォルトで値をシフトするため、i + 1を選択する必要があります。

Sub hello() 
     For i = 1 To Range("A10000").End(3).Row 
      If (Cells(i, 1) - Cells(i + 1, 1) > 1) Then 
       Cells(i + 1, 1).EntireRow.Insert 
       i = i + 1 
     End If 
    Next i 
End Sub 
+1

コードについて少し説明すれば、あなたの答えは大幅に改善されます。 –

+1

@ThomasBormansあなたは正しいです。 –