□投稿者/ よねさん -(2020/01/17(Fri) 09:26:34)
| 行数が増えると、For〜Next で2行目までループしているのが無駄なので、
G列で"済"など何か入力されている行までをループするようにしてみました。
このような感じでいかがでしょうか。
Sub test1()
Dim i As Long
Dim lastRow As Long, s_Row As Long
Dim lastRow2 As Long
lastRow = Cells(Rows.Count, 1).End(xlUp).Row
lastRow2 = Cells(Rows.Count, 7).End(xlUp).Row
For i = lastRow To lastRow2 Step -1
If Cells(i, 4).Value > 1 And Cells(i, 7).Value <> "済" Then
s_Row = Cells(i, 4).Value - 1
Range("A" & i + 1 & ":A" & i + s_Row).EntireRow.Insert
Range("G" & i).Value = "済"
Range("A" & i & ":G" & i).Copy Range("A" & i + 1 & ":G" & i + s_Row)
End If
Next i
End Sub
|
|