Excel VBA – 从应用程序调用方向上移动单元格值

我有一个数据表。 当用户点击“删除”时,适用的行被删除。 我想要从其余行下面的数据向上移动一个单元格。

rs = ActiveSheet.Buttons(Application.Caller).TopLeftCell.Row 

我把rs设置为应用程序调用者的行(即被删除的行),所以我希望每个单元格的值都高于一个值。

我想这将需要一段时间循环通过表中的每个单元格? 该表在BP列之间设置。 目前唯一一个在每一行都有一个入口的列是B,那么是否有办法解决这个问题,并且一旦碰到B列中的一个单元而没有入口,就停止循环?

提前致谢

你可以在删除命令中做到这一点。

 Range("Your Range”).Delete Shift:=xlUp 

该代码是为表格行,但你可以适应你的表。

 Dim ws As Excel.Worksheet Set ws = ActiveWorkbook.Sheets("Sheet1") ws.ListObjects("Table3").Range.Rows(4).Delete xlShiftUp 

这将删除表格的第四行。 你的可能会

 ws.ListObjects("Table3").Range.Rows(rs).Delete xlShiftUp 

以下是关于使用表格的一些很好的信息。 http://www.thespreadsheetguru.com/blog/2014/6/20/the-vba-guide-to-listobject-excel-tables