我希望打印每隔n(在这种情况下为第5行)具有特定值的行,然后是具有另一个值的下一个n,然后依此类推。我希望能够从另一个表中提取值进行打印。例如,我有一张表:
Table A:
George Washington
Alexander Hamilton
Thomas Jefferson
我想使用表A中的信息来创建表B.
TABLE B
George Washington
George Washington
George Washington
George Washington
George Washington
Alexander Hamilton
Alexander Hamilton
Alexander Hamilton
Alexander Hamilton
Alexander Hamilton
Thomas Jefferson
Thomas Jefferson
Thomas Jefferson
Thomas Jefferson
Thomas Jefferson
George Washington
George Washington
George Washington
George Washington
George Washington
Alexander Hamilton
Alexander Hamilton
Alexander Hamilton
Alexander Hamilton
Alexander Hamilton
Thomas Jefferson
Thomas Jefferson
Thomas Jefferson
Thomas Jefferson
Thomas Jefferson
...
答案 0 :(得分:1)
假设你的源数据在Sheet1的A列中,这可以在Sheet2上完成,从A1开始并向下拖动:
=INDEX('Sheet1'!A:A,ROUNDUP(ROW()/5,0))
INDEX采用给定范围(在本例中,是Sheet1中存储名称的所有列A),并返回该范围的给定行号中显示的值。取ROW()[显示公式所在的单元格行],除以5,向上舍入,这将重复1次,然后是2次,5次,等等。因此,索引将重复5次并继续通过Sheet1中的列表。
答案 1 :(得分:0)
如果Table A
在单元格A1
中开始,则将以下公式插入单元格C1
(或任何其他列,但必须位于第1行)并正确复制:< / p>
=OFFSET($A$1,MOD(FLOOR((ROW()-1)/5,1),COUNTA($A:$A)),0)
其中5是您要重复名称的次数。
答案 2 :(得分:0)
如果您想使用VBA,请尝试以下方法:
Public Sub DuplicateItems(rInputRange As Range,rOutputStartCell As Range,lDuplicateCount As Long)
Dim rCell As Range
Dim lOffset As Long
Dim i As Long
For Each rCell In rInputRange
For i = 1 To lDuplicateCount
rOutputStartCell.Offset(lOffset, 0) = rCell
lOffset = lOffset + 1
Next i
Next rCell
End Sub
rInputRange代表表A, rOutputStartCell作为启动输出的单元格 lDuplicateCount作为复制量
答案 3 :(得分:0)
一种简单的方法:手动创建整个第一个循环。然后将公式=A1
放在下一个单元格中(假设A1是第一个单元格)。复制或填写。
答案 4 :(得分:0)
或者很简单:
Sub MacroMan()
n = 5 '// number of rows to fill
For Each var In WorksheetFunction.Transpose([A1:A3]) '// Change to range of Table A
Range("B" & n - 4).Resize(5).Value = CStr(var)
n = n + 5
Next
End Sub