我在Excel工作表中的特定单元格上有一个Sum
(让我们说"A1:A5"
)。通常,每当我在"A1"
上手动插入一行时,总和都会扩大,因此新的范围是"A1:A6"
。现在,当我使用VBA在"A1"
插入一行时,我的总和来自"A2:A6"
,而不是"A1:A6"
。如何插入一行但基本上保持当前格式(以便总和自动展开)?
我用于插入的代码:
dest.Rows(index).Insert shift:=xlShiftDown
dest.Rows(index).PasteSpecial xlPasteValues
其中dest
是我要扩展的工作表。
编辑:
我试图使用宏并使用该代码,但不幸的是它没有用。
生成的代码:
Rows("167:167").Select
Selection.Insert Shift:=xlDown, CopyOrigin:=xlFormatFromLeftOrAbove
我的新代码:
dest.Rows(index).Insert Shift:=xlDown, CopyOrigin:=xlFormatFromLeftOrAbove
dest.Rows(index).PasteSpecial xlPasteValues
那并没有改变结果。
Edit2:
我将提供一张图片来阐明我想做什么:
每当我手动添加一行(rightclick line 152 -> insert cells
)时,此小表都会扩展并且所有内容都向下移动,因此我们假设:
我在SUM
单元格中有一个B,180
,它从B:50到B:179,现在SUM
在B,181
单元格中,并且从{{1 }}到B:50
。另外,表格的格式用于换行(就表格而言,所以B:180
列具有上面单元格的背景/边界。
当我使用我的代码时,它只是插入了一个新的空白行而没有保留格式。
答案 0 :(得分:2)
这对我来说很有效:
Sub copyExpanded()
Dim rng As Range
Set rng = ActiveSheet.Range("A5")
rng.Offset(1).EntireRow.Insert
rng.EntireRow.Copy rng.Offset(1).EntireRow
End Sub