单击删除按钮"btnS2"时剪切、粘贴和向上移动范围一行



>我制作了一个将数据添加到列表的宏,一个用于在此列表数据旁边创建一个按钮的 sub,单击该按钮时允许您将其删除,以及另一个实际删除数据的 subbtnS2()。我已经让一切正常,除非有人从列表中间删除数据,我需要这个空白由它下面的数据填充或"上移"。我什至几乎完成了这个,但我似乎无法正确粘贴它,所以这可能是一个非常简单的问题。请帮忙。

Sub btnS2()
Dim b As Object
Dim r As Long, c As Long, firstrow As Long
Dim cell As Range
With Worksheets("Skill Summary")
Set b = .Buttons(Application.Caller)  'references button
With b.TopLeftCell                  'returns row and col of button pushed
r = .row
c = .Column - 1
End With
Set cell = .Cells(r, c)
cell.ClearContents
Call buttonGenerator_skillSummary
Call shiftup(cell)
End With
End Sub

所以这是我的子选择一个范围,剪切它并将其粘贴到上面的一行。我已经经理让除了倒数第二行的粘贴之外的所有工作Worksheets("Skill Summary").selection.Offset(-1, 0).Paste

Sub shiftup(cell As Range)
Dim sel As Range
Dim firstrow As Long
Dim lastrow As Long
firstrow = cell.row + 1
lastrow = 1000
Set sel = Range("B" & firstrow & ":" & "B" & lastrow)
With sel
.Select
.Cut
End With
Worksheets("Skill Summary").selection.Offset(-1, 0).Paste
End Sub

使用可选的 Destination 参数尝试 Range.Cut。

Sub shiftup(cell As Range)
Dim firstrow As Long, lastrow As Long
firstrow = cell.row + 1
lastrow = 1000
with cell.parent.Range("B" & firstrow & ":B" & lastrow)
.cut destination:=.offset(-1, 0)
end with
End Sub

最新更新