excel - 如何将一行复制到多行?
问题描述
我必须建立一个结合流程和国家的列表。
我有 114 个流程和 55 个国家/地区。
我必须像这样构建列表:
- 第一道工序55次(55个国家)
- 第二道工序55次(55个国家)
- ... ETC。
例子:
我正在考虑这段代码:
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 等。(我可以处理国家部分,之后。)
我明白了
运行时错误 1004
解决方案
您的代码存在一些问题。导致您的运行时错误的是xlUp
您所拥有的 vba const 的拼写错误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
推荐阅读
- wordpress - 如何将替代文本添加到实际上是无声、循环、自动播放 MP4 的 GIF
- javascript - 如何在 Typescript 中验证数组为空
- javascript - p5.js:随机颜色并保存为 pdf 功能
- java - 对齐缩进
- rules - 规则不执行
- function - 谁能弄清楚如何测试这个 OCAML 功能?
- linux - 文件更改时自动重启服务器
- sql - Distinct vs row_number() - 使用相同条件的查询在oracle中给出不同的结果?
- c++ - 防止递归组合生成中的内存分配
- distributed-computing - paxos 是否提供真正的线性化一致性?