【问题标题】:Copying and pasting loop in VBA Excel for multiple outputs在 VBA Excel 中为多个输出复制和粘贴循环
【发布时间】:2020-03-22 21:50:29
【问题描述】:

所以我有以下 excel 选项卡: Code 1, Code 2, Code 3, LI, 2015, 2016, 2017, 2018, 2019, 2015 年输出等。

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

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%' 放入选项卡 Code 1 中的单元格 B5 和 B6 中。对于 B5 和 B6 中的代码 2 和 3 'CS' 和 '37%' 也是如此选项卡代码 2 等。然后这些在单元格 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

此时我只是想让它适用于没有 % 的第一个代码,然后我可以尝试添加后面的代码,但这个也不起作用。有什么建议吗?

【问题讨论】:

  • 你能解释一下“这个也不行”吗?我马上可以告诉你,你不能用这一行将整个范围粘贴到一个单元格中:Worksheets("2015 output").Range("A" & i).Value = Worksheets("LI").Range("F5:F183").Value
  • @JvdV 它正在生成我不认识的数字输出,不确定它们来自哪里。我的错误是单个单元格。
  • 请用单个单元格代码更新您的问题。
  • @CLR 已更新。请注意,这是我第一次使用 VBA。谢谢

标签: excel vba loops copy paste


【解决方案1】:

您的问题有点难以阅读,因此我根据我认为您的代码最明显的问题编写了一个答案。抱歉,如果我误读了您的查询或完全错过了重点..

您似乎在尝试复制

的内容

Worksheets("LI").Range("F5:F183")(179 个单元格)

Worksheets("2015 output").Range("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-12-02
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-05-20
    • 2019-01-23
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多