【发布时间】:2018-07-24 22:15:00
【问题描述】:
我的 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
这并没有改变结果。
编辑2:
我将提供一张图片来说明我想要做什么:
每当我手动添加一行 (rightclick line 152 -> insert cells) 时,这个小表格就会展开并且所有内容都向下移动,所以让我们假设:
我在单元格 B,180 中有一个 SUM,从 B:50 到 B:179,现在 SUM 在单元格 B,181 中,从 B:50 到 B:180。此外,表格的格式用于新行(就表格而言,列A:K 具有上面单元格的背景/边框。
当我为此使用我的代码时,它只是插入了一个新的空白行而不保留格式。
【问题讨论】:
-
在 Excel 中解决格式问题的最简单方法是记录一个宏,并查看当您执行正确动作时它会产生什么。通常经过一些优化后解决方案是相当好的。
-
@Vityata 遗憾的是,这对我不起作用,我编辑了我的帖子
-
通常,为什么我在“A1”上手动插入一行,总和被扩大,所以新的范围是“A1:A6” - 真的发生了吗?还是仅当您在
A2上而不是A1上插入一行时才会发生这种情况? -
@Vityata 我更新了我的问题描述,请看图片。事实上,当我选择 A2 时,他可能会扩展,但在这种情况下,我猜无论如何他都应该扩展,问题是他没有保留格式,即使提供了
CopyOrigin作为参数