gpt4 book ai didi

excel - 如何将一行复制到多行?

转载 作者:行者123 更新时间:2023-12-04 22:19:37 29 4
gpt4 key购买 nike

我必须建立一个结合流程和国家的列表。
我有 114 个流程和 55 个国家/地区。
我必须像这样构建列表:

  • 第一次处理 55 次(55 个国家)
  • 第二道工序55次(55个国家)
  • ...等

  • 例子:
    image
    我正在考虑这段代码:
    Sub Copydata()

    Dim i As Long
    Dim y As Long
    Dim sht As Worksheet
    Dim lastrow As Long

    Set sht = ThisWorkbook.Sheets("Sheet2")
    lastrow = sht.Cells(sht.Rows.Count, "A").End(x1Up).Row

    Worksheets("Sheet2").Activate
    Dim A

    For i = 1 To lastrow
    For y = 1 To 55
    Sheet3.Cells(y, 1) = Sheet2.Cells(i, 1)
    Next y
    Next i

    End Sub
    这应该添加到工作表 3,55 次流程 1 然后移动到流程 2 等等。(我可以处理国家部分,之后。)
    我明白了

    runtime error 1004

    最佳答案

    您的代码存在一些问题。导致您的运行时错误的是 vba const xlUp 的错字。你有x1Up (数字 1 而不是字母 l)。
    此外,您可以通过更一致地使用变量来稍微清理一下。通过工作簿或工作表代码名称获取对工作表的引用。在您的代码中,您两者都做。我还希望看到对 Cells 对象进行更明确的值分配。不要将单元格设置为彼此相等,而是设置 Cell.Value .这是我建议的轻微修改:
    编辑:
    我已经更新了代码以执行您在评论中描述的内容。

    Sub Copydata()

    Dim i As Long
    Dim y As Long
    Dim sht2 As Worksheet
    Dim sht3 As Worksheet
    Dim lastrow As Long

    Set sht2 = ThisWorkbook.Sheets("Sheet2")
    Set sht3 = ThisWorkbook.Sheets("Sheet3")
    lastrow = sht2.Cells(sht2.Rows.Count, "A").End(xlUp).Row

    y = 1

    For i = 1 To lastrow
    For y = y To y + 54
    sht3.Cells(y, 1).Value = sht2.Cells(i, 1).Value
    Next y
    Next i

    End Sub

    关于excel - 如何将一行复制到多行?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/65342664/

    29 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com