David正在将小计(数据|小计)添加到大型工作表中,并寻找一种将小计单元格移动到不同单元格的方法。例如,假设当Excel添加自动小计时,它们被添加到S列中,并且Excel添加的SUBTOTAL公式引用了S列中的单元格范围。David希望将SUBTOTAL公式(仅那些公式)移出

|在S列到S列之间有详细的公式。

一种选择是遍历并将SUBTOTAL公式一次移动到所需位置。 (您将使用Ctrl + X和Ctrl + V来移动单元格,而不是使用Ctrl + C和Ctrl + V来仅创建单元格的副本。)如果工作表很大,有很多小计,这可能会变得非常乏味,非常繁琐。很快。

Excel中的Tedium通常是创建宏的主要动力。这种情况也不例外。可以创建一个宏来进行SUBTOTAL公式的实际移动。请考虑以下示例:

Sub MoveSubtotals()

Dim rCell As Range     Dim rng As Range     Dim iCol As Integer     Dim iOffset As Integer

iCol = 19  '19 is Column S     iOffset = 1 'Positives go right, negatives go left     Set rng = Intersect(Selection.CurrentRegion, Columns(iCol))

For Each rCell In rng         If InStr(rCell.Formula, "SUBTOTAL") Then             rCell.Offset(0, iOffset).Formula = _                 rCell.Formula             rCell.ClearContents         End If     Next End Sub

本示例通过检查在S列中选择的每个单元格来工作。如果该单元格中的公式包含单词SUBTOTAL,则该公式将被复制到T列右侧的一列中,并从S列中的单元格中删除。只需更改分配给iOffset变量的值,小计将向左或向右移动的距离。 (请注意,您必须使用选定的单元格范围来运行宏,并且该选择的一部分必须包含列S。)

注意:

如果您想知道如何使用此页面(或_ExcelTips_网站上的任何其他页面)中描述的宏,我准备了一个特殊页面,其中包含有用的信息。

_ExcelTips_是您进行经济高效的Microsoft Excel培训的来源。

本技巧(2119)适用于Microsoft Excel 97、2000、2002和2003。可以在以下功能区中为Excel的功能区界面(Excel 2007及更高版本)找到本技巧的版本: