Microsoft Excel – 如何将单元格链接或复制到每隔第 n 行的一个不同工作表

Microsoft Excel – 如何将单元格链接或复制到每隔第 n 行的一个不同工作表

Microsoft Excel – 如何将单元格链接或复制到每第 n 行上的不同工作表。我有一个有趣的问题。它可能很简单,但我搞不懂。

我有一个单元格列表(大约 10 列,超过一千行,很快就会扩大)A1-A10 及以下这些是我的标题和主要输入单元格(我们称之为摘要表)

我需要复制这些单元格并最好链接到相邻的工作表(详细工作表),但方式是每 20 行复制一个单元格(或 10 个单元格)。

有时我会在汇总表中添加和删除行。因此,我希望能够在详细表中使用自动填充或类似的功能。更新汇总表后,可以通过自动填充公式来更新详细表。

更详细的信息:
这些单元格被复制到的每一行都成为每个 20 行模块的标题行。复制标题下方的 19 行保持空白,并在更右侧的 19 行上进行详细计算。每个部分都是一个相同的模块,每个模块的第一行都有许多详细计算和结果。目前我只使用详细表,添加或删除模块及其标题非常耗时。

谢谢您的回答。Martin

答案1

也许这会有用:

创建 A 列,Counter,并将其单元格设置为 0、1、2、3、...、(行数)。创建新列,RowType。将 RowType 设置为=IF(MOD(A1,20) = 0, "Summary", "Detail")并将其向下拖动。

这将创建一个如下所示的表格:

 0  Summary
 1  Detail
 2  Detail
 3  Detail
 4  Detail
 5  Detail
 6  Detail
 7  Detail
 8  Detail
 9  Detail
10  Detail
11  Detail
12  Detail
13  Detail
14  Detail
15  Detail
16  Detail
17  Detail
18  Detail
19  Detail
20  Summary
21  Detail
22  Detail
23  Detail
24  Detail

然后过滤 RowType 列以获取摘要并照常粘贴单元格

答案2

我不确定我是否理解您的问题,但是当您提到自动填充时,有一种方法可以创建自定义自动填充列表,也许这会对您有所帮助。

在 2003 中,转到“工具”菜单 — 然后向下移动到“选项”。在对话框中,转到“自定义列表”选项卡。您可以在“列表条目”框中键入列表(以逗号分隔),也可以从现有单元格导入列表。

当您想要自动填充列表时,只需在单元格中输入任意一个条目并拖动填充柄即可。它将为您提供以该条目开头的列表。

如果您使用的是 2007 版,则可以通过单击 Office 按钮,然后单击“Excel 选项”按钮来访问自定义列表。您将在其中看到一个用于自定义列表的按钮。

答案3

在摘要表上放置一个按钮,并在其后面放置此代码,将工作表名称和按钮名称更改为您想要使用的名称。然后,每次您想要重做详细信息行时,点击按钮。注意:我编写此代码,因此摘要表是 Sheet2,详细信息表是 Sheet1:

Private Sub RedoDetailedSheet_Click()

Dim i As Integer, j As Integer

For i = 0 To Worksheets("Sheet2").UsedRange.Rows.Count - 1
    For j = 1 To Worksheets("Sheet2").UsedRange.Columns.Count

        Worksheets("Sheet1").Cells(20 * i + 1, j).Formula = "=Sheet2!" _
            & Worksheets("Sheet2").Cells(i + 1, j).Address

    Next j
Next i

End Sub

这是根据您的示例文件针对该特定情况编写的代码。您需要将模型列的格式更改为常规。

Private Sub RedoDetailedSheet_Click()

Dim i As Integer, j As Integer

For i = 0 To Worksheets("Input").UsedRange.Rows.Count - 2
    For j = 1 To Worksheets("Input").UsedRange.Columns.Count

        Worksheets("Output").Cells(20 * i + 29, j + 2).Formula = "=Input!" _
            & Worksheets("Input").Cells(i + 2, j).Address

    Next j
Next i

End Sub

相关内容