【发布时间】:2018-08-08 18:17:16
【问题描述】:
我不确定循环的逻辑是如何工作的。 我在第 1 页有一个表,有 105 行和 120 列。 我想做一个循环,从单元格 J6 开始,复制 100 行和 16 列的范围。并在表 2 (B1:CW16) 上转置和粘贴。然后从单元格 K6 开始,复制另一个 100 行和 16 列的范围,然后转置并粘贴到工作表 2(B19:CW34)。然后从单元格 L6(另外 100 行和 16 列)开始并粘贴到工作表 2。(在工作表 2 中每隔 18 行粘贴一次)
我在网上搜索了一下,代码如下:
Sub transpose()
Dim ColNum As Long
Dim i as long
For ColNum = 10 To 108
LR = Range("B" & Rows.Count).End(xlUp).Row
Sheet1.Activate
Range((Cells(6, ColNum)), (Cells(105, ColNum + 15))).copy
'Transpose
Sheet2.Activate
For i = 1 To LR Step 18
Cells(i, 2).Select
Selection.PasteSpecial Paste:=xlPasteAll, Operation:=xlNone,
SkipBlanks:=False, transpose:=True
Next i
Next ColNum
End Sub
这段代码没有给我我想要的。此代码在工作表 1 中复制一个范围并在工作表 2 中多次粘贴,然后在工作表 1 中复制第二个范围并替换工作表 2 中的所有内容。如何修改代码以便可以复制工作表 1 中的第一个范围,粘贴到工作表 2 范围 B1:CW16,然后复制工作表 1 中的第二个范围,并粘贴到工作表 2 范围 B19:CW34。 (第 2 页的 18 行步骤)?
【问题讨论】:
-
我无法遵循您的逻辑...但是您是否尝试过查看
TRANSPOSE函数? -
所以您正在复制越来越小的原始数据子集?直到你只剩下一列?
-
是的。每次只需向右复制一列。
-
对不起,我的意思是我想做一个循环,从单元格 J6 开始,复制 100 行和 16 列的范围。并在表 2 (B1:CW16) 上转置和粘贴。然后从单元格 K6 开始,复制另一个 100 行和 16 列的范围,然后转置并粘贴到工作表 2(B19:CW34)。然后从单元格 L6 开始(另外 100 行 16 列).......我在网上搜索了以下代码:
-
这与您的原始问题不同。请编辑您的问题以准确描述您的问题。