【发布时间】:2016-06-08 19:36:01
【问题描述】:
我无法解决这个问题。我正在将rowA2:C2 中的单元格从一张表复制到另一张表,但我想根据相邻columnD 上填充的单元格将它们粘贴到多个rows 中。我能够用适当的范围填充columnD。
我的问题是如何确定范围长度并多次粘贴单元格A2:C2。这是我尝试编写的代码。我之前declared 所有variables。这是我遇到问题的代码部分。谢谢你们!
Excel Sheet Here
lastrow1 = Sheets("ResourcesLib").Range("A" & Rows.Count).End(xlUp).row
For i = 1 To lastrow1
resources = Sheets("ResourcesLib").Cells(i, "A").Value
Sheets("sheet3").Activate
lastrow2 = Sheets("sheet3").Range("B" & Rows.Count).End(xlUp).row
For j = 2 To lastrow2
If Sheets("sheet3").Cells(j, "B").Value = resources Then
Sheets("ResourcesLib").Activate
NoCell = rsrcl.Cells(i, rsrcl.Columns.Count).End(xlToLeft).Column
rsrcl.Range(rsrcl.Cells(i, 2), rsrcl.Cells(i,rsrcl.Cells(i,Columns.Count).End(xlToLeft).Column)).Copy
rsrca.Range("D" & Rows.Count).End(xlUp).Offset(1, 0).PasteSpecial Paste:=xlPasteValues, Transpose:=True
Sheets("sheet3").Activate
Sheets("sheet3").Cells(j, "A").Copy
rsrca.Range(Cells(k, 1), Cells(m + (NoCell - 1), 1)).PasteSpecial
Sheets("sheet3").Cells(j, "B").Copy
rsrca.Range(Cells(k, 2), Cells(m + (NoCell - 1), 2)).PasteSpecial
Sheets("sheet3").Cells(j, "C").Copy
rsrca.Range(Cells(k, 3), Cells(m + (NoCell - 1), 3)).PasteSpecial
End If
Next j
k = (NoCell - 2) + k
m = k
Application.CutCopyMode = False
Next i
【问题讨论】:
-
听起来您在这里遇到了真正的问题,您能否详细说明代码中发生的情况,我会跟进
NoCell和rsrcl。 -
@GaryEvans 所以在 rsrcl 之后,从该表复制单元格并粘贴到 rsrca D 列(转置)。这条线之后是问题。如果(j = 3)从“Sheet3”复制单元格A3:C3单元格并将rsrca A粘贴到C列,但将其粘贴多次,直到上一步中粘贴的“D”列(转置)结束。我希望你有一个想法。所以我所做的是我正在复制指定范围的单元格,其中 NoCell 作为 for 循环的上限,但似乎不起作用。我可以将 ecel 文件发送给您以便更好地理解。谢谢!
-
非常抱歉,这里的内容不足以让我理解您的意图,希望其他人能比我更好地遵循它。
-
@GaryEvans 我添加了 excel 表。请看一看。我希望它提供一个想法。
-
你设置 rsrcl 和 rsrca 等于什么?