VBA代码通过移动/移动一系列单元格来覆盖单元格

嗨,我有一个数据表,从图片可以看出,不时变化。 例如,如果3月15日有新的数据出现,我将不得不在2014年4月14日之前复制和重叠单元格到3月14日。 之后,我将填写15月15日关于空白单元格的信息,该单元格之前填充了feb'15信息。 我想知道是否有任何vba代码来帮助移动或移动范围到已有数据的单元格的首选行(更多的代码重叠/ overwrrite单元格通过移动/向上移动)。
数据表

正在考虑Activecell.offset,但我不知道它是否可以作为一个单元格的范围上移。

在这种情况下,使用一个简单的循环来复制值。 最后一行(13)被第14行的空值覆盖。

Public Sub MoveUp() Dim sh As Worksheet Dim x As Long, y As Long Set sh = ActiveSheet ' or the specific sheet ' The 12 months For y = 2 To 13 ' Your 7 columns For x = 1 To 7 sh.Cells(y, x) = sh.Cells(y + 1, x) Next x Next y With sh.Cells(13, 1) .Select ' This only works if your column A contains dates (not strings) .Value = DateAdd("m", 1, sh.Cells(12, 1)) End With End Sub 

如果列A包含string,而不是date,则在末尾删除DateAdd行。

可能有多种方式来做到这一点,但一个简单的方法是(直接从移动范围和覆盖目标macroslogging器):

 Range("A3:G13").Cut Destination:=Range("A2:G12") Range("A13").Select