在VBA Excel中复制和粘贴循环以实现多个输出

在VBA Excel中复制和粘贴循环以实现多个输出,excel,vba,loops,copy,paste,Excel,Vba,Loops,Copy,Paste,因此,我有以下excel选项卡: 代码1、代码2、代码3,李,2015、2016、2017、2018、2019,2015年产量等 对于2015年,我在“2015”选项卡中有一个10行的表格,其中列出了3个代码及其各自的%值。e、 g ref name yr code 1 % code 2 % code 3 % 12345 NAME 2015 AB 50% CD 37% EF 13% 78901 NAME 20

因此,我有以下excel选项卡: 代码1、代码2、代码3,李,2015、2016、2017、2018、2019,2015年产量等

对于2015年,我在“2015”选项卡中有一个10行的表格,其中列出了3个代码及其各自的%值。e、 g

ref       name   yr     code 1   %     code 2   %      code 3    %
12345   NAME    2015    AB  50% CD  37% EF  13%
78901   NAME    2015    AX  54% OD  30% NG  6%
26572   NAME    2015    AE  60% CD  27% PF  13%
我需要将代码1“AB”和%“50%”放入选项卡“代码1”中的单元格B5和B6中。对于B5中的代码2和3“CS”以及选项卡代码2中的B6中的“37%”等,情况相同。然后,在单元格F5:F183中的LI选项卡中生成一个图案,该图案需要针对每个引用进行复制,并针对每个引用粘贴到2015年的输出选项卡中。然后循环每个引用并重复粘贴输出

到目前为止,我对复制和粘贴部分有以下内容:

    Sub Copy_and_paste2()
        Dim rng2 As Range, cell2 As Range
        Dim i As Integer
        i = 3
        Set rng2 = Worksheets("2015").Range("D10:D21")
        For Each cell2 In rng2
           Worksheets("Code 1").Range("B5").Value = cell2.Value  
            Worksheets("2015 output").Range("A" & i & ":AW" & i).Value = Worksheets("LI").Range("F5:F183").Value
            i = i + 1
        Next cell2
End Sub

在这一点上,我只是想让它为第一个没有%的代码工作,然后我可以尝试添加后面的代码,但这一个也不工作。有什么建议吗?

你的问题有点难读,所以我根据我认为你的代码中最明显的问题写了一个答案。如果我误读了你的问题或完全没有抓住要点,我向你道歉

您似乎正在尝试复制的内容

工作表(“LI”).范围(“F5:F183”)
(179个单元格)

工作表(“2015输出”).范围(“A”&i&“:AW”&i)
(49个单元格)

忽略无法将179个条目复制到49个单元格中的事实(它只会复制前49个)—我认为您可能看到第一个条目在所有49个单元格中重复

这是因为您没有转换范围(在本例中,从列切换到行)

尝试以下方法进行转置:

Worksheets("2015 output").Range("A" & i & ":AW" & i).Value = _
                WorksheetFunction.Transpose(Worksheets("LI").Range("F5:F57").Value)

但请记住,我已将源范围更改为仅前49个单元格。你不必这么做,但我会强调它,以防你不知道这正在发生。

你能解释一下“这个也不起作用”吗?我可以马上告诉你,你不能用这一行在一个单元格中粘贴整个范围:
工作表(“2015输出”).range(“a”&I”).Value=Worksheets(“LI”).range(“F5:F183”).Value
@JvdV它产生了一个我无法识别的数字输出,不确定它们来自何处。我错了,它是一个单单元格。请用单单元格代码更新您的问题。@CLR已更新。请注意,这是我第一次使用VBA。谢谢