Sub 按当前列数值在数值各自位置以下批量插入相应数量的单元格() Dim i1%, i2%, j%, Target As Range, Rng As Range If Selection.Columns.Count > 1 Then MsgBox "不允许选择多列。 ", 48, "警告" Exit Sub End If j = Selection.Column If Selection.Cells.Count = 1 Then Set Target = Range(Cells(1, j), Cells(65536, j).End(xlUp)) Else Set Target = Selection '允许在一列中选择部分区域进行插入单元格操作 End If If MsgBox("根据" & Target.Address(0, 0) & "数值插入单元格吗? ", 36, "插入单元格") = 7 Then Exit Sub Application.ScreenUpdating = False '禁用屏幕刷新 i1 = Target.Row i2 = i1 + Target.Rows.Count - 1 For i = i2 To i1 Step -1 If VBA.IsNumeric(Cells(i, j)) And Cells(i, j) > 0 Then Cells(i, j).Offset(1, 0).Resize(Cells(i, j).Value, 1).Insert Shift:=xlDown End If Next Application.ScreenUpdating = True '恢复屏幕刷新 End Sub |