gpt4 book ai didi

vba - 将多个工作表中的单行复制到新工作表中

转载 作者:行者123 更新时间:2023-12-03 03:20:13 26 4
gpt4 key购买 nike

我不是开发人员,但最近受聘担任新创建的职位,这意味着我正在尝试从头开始创建以前从未做过的报告和事情。 IT部门没有时间教我,所以我正在尝试学习VBA和Access等高级数据分析工具,但我还不明白如何编写代码到我需要的程度。我使用了这些论坛中的一些东西,但我很幸运,主要是通过复制和粘贴来获得我需要的东西。

我从这个论坛复制了这个(第二个答案):copy the same row from multiple sheets into one sheet in excel

这是我复制的代码:

Sub copyrow()
Dim Nrow As Long, Nsheet As Long
Dim i As Long

Nrow = 7
Nsheet = 6

For i = 1 To Nsheet - 1
Sheets(i).Cells(Nrow, 1).EntireRow.Copy Sheets(Nsheet).Cells(i, 1)
Next i
End Sub

我测试了它并且它有效,但我没有意识到 Nsheet 意味着它将转到第 6 个表并替换那里的数据。于是我又开始了,在其他人的前面打开了一张空白工作表。我所做的只是将 Nrow 更改为 6,因为这是我想要复制的行。然后我将 Nsheet 更改为 1,以便将结果放在第一张纸上。一旦我对 Nsheet 进行了更改,它就不起作用了。我对代码的理解不够,不知道我做错了什么。

这是我的代码现在的样子:

Sub copyrow()
Dim Nrow As Long, Nsheet As Long
Dim i As Long

Nrow = 6
Nsheet = 1

For i = 1 To Nsheet - 1
Sheets(i).Cells(Nrow, 1).EntireRow.Copy Sheets(Nsheet).Cells(i, 1)
Next i
End Sub

但是当我运行它时,什么也没有发生。我目前已将代码粘贴到第一个工作表中。我想也许我应该将代码添加到另一个工作表中,但这在尝试运行时给了我一个错误。我不知道这是否重要。我觉得自己真的很蠢,而且确信这只是一件小事,所以请随意翻白眼。

谢谢!

最佳答案

循环工作表

从第 2 个工作表循环到第 6 个工作表以收集数据。 Nsheet 现在改回 6,循环将 i 从 2 增加到 6。如果您可以删除“Nsheet”赋值并将 For 循环更改为 For i = 2 to 6,则效果相同。 .

使代码动态适应

如果每个电子表格的工作表数量发生变化,您可以使用 Sheets.Count而不是指定 6 .

.Cells(i - 1, 1) ... -1已添加,因为 i被重复使用。 i循环浏览工作表以收集数据时用作工作表引用;在这里,它被重用为行号变量。 Sheet2 数据将添加到sheet1 的第1 行,sheet3 数据将添加到sheet1 的第2 行,依此类推。如果sheet1 上有标题,则 -1可以删除。

Sub copyrow()
Dim Nrow As Long, Nsheet As Long
Dim i As Long

Nrow = 7
Nsheet = 6

For i = 2 To Nsheet
Sheets(i).Cells(Nrow, 1).EntireRow.Copy Sheets(1).Cells(i - 1, 1)
Next i
End Sub

关于vba - 将多个工作表中的单行复制到新工作表中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51125232/

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