Microsoft Excel - 如何将单元格复制到每第n行的不同工作表。 我有一个有趣的问题。这可能很简单,但我无法弄清楚。
我有一个单元格列表(大约10列,超过千行,很快就要扩展) A1-A10及以下 这些是我的标题和主要输入单元格(让我们称之为摘要表)
我需要复制这些单元格并最好链接到相邻的工作表(详细表),但是每隔20行复制一个单元格(或10个单元格)。
有时我会在摘要表中添加和删除行。因此,我希望能够在详细表中使用自动填充或类似功能。更新我的摘要表后,可以通过自动填充公式来更新详细表。
更详细的信息:
复制这些单元格的每一行都成为每个20行模块的标题行。复制标题下方的19行仍为空,并在右侧19行进行详细计算。每个部分都是一个相同的模块,具有许多详细的计算结果,每个模块的第1行结果。
目前我只使用详细资料表,添加或删除模块及其标题非常耗时。
摘要表
A B C D
1#A1#B1#C1 ......
2#A2#B2#C2 ...
3#A3#B3#C3 ...
详细表格
A B C D
1#A1#B1#C1 ......
...... 19条空行
21#A2#B2#C2 ...
...... 19条空行
31#A3#B3#C3 ......
...... 19条空行
感谢您的回答。 马丁
答案 0 :(得分:0)
在摘要表上放置一个按钮,并将此代码放在其后面,将工作表名称和按钮名称更改为您要使用的名称。然后每次要重做细节线时,点击按钮。注意:我写了这个,所以摘要表是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
以下是基于针对该特定情况的示例文件的代码。您需要将Model列的格式更改为General。
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
答案 1 :(得分:-1)
这可以通过Excel的查找功能轻松处理 - 无需VBA - 并且可以在https://superuser.com/上更恰当地询问。
更新:我无法从MediaFire获取您的文件,但最近您写的内容显示Lance的代码应该适合您。祝你好运。