|
发表于 2015-11-2 15:13
|
显示全部楼层
本楼为最佳答案
- Sub 插入()
- Application.ScreenUpdating = False
- Dim NumA&, NumB&, arr(), arrNum&
- arrNum = [F65536].End(3).Row
- arr = Range("f1:f" & arrNum)
- For i = arrNum To 2 Step -1
- NumA = Int(arr(i, 1))
- If NumA > 0 Then
- r1 = i '起始行
- If i = arrNum Then
- r2 = [b65536].End(3).Row
- Else
- If arr(i + 1, 1) = "" Then r2 = Cells(i, "f").End(xlDown).Row - 1 Else r2 = r1 '结束行
- End If
- NumB = r2 - r1 + 1 '表中实际的总件数
- If NumB > NumA Then '如果实际总件数大于要改的总件数,删除
- Cells(r1 + NumA, 1).Resize(NumB - NumA).EntireRow.Delete
- ElseIf NumB < NumA Then '如果实际总件数小于要改的总件数,插入
- Cells(r2 + 1, 1).Resize(NumA - NumB).EntireRow.Insert
- Cells(r2, 2).Resize(1, 4).Copy Cells(r2 + 1, 2).Resize(NumA - NumB, 4)
- End If
- End If
- Next i
- Application.ScreenUpdating = True
- End Sub
复制代码 |
|