我正在使用具有各种工作表的工作簿。我想复制最后5张中具有值" Pending"的所有行。在他们的专栏" J"。我想创建一个名为" Pending week"并将所有这些行粘贴到那里。任何帮助将非常感激。 谢谢
答案 0 :(得分:1)
如果你打破它,你可以很容易地创建它:
您尚未提供任何代码,因此我将为您提供工作基础:
您添加了新的工作表&使用以下命名:
Worksheets.Add
ActiveSheet.Name = "Pending week"
查找最新的五张
据我所知,您无法找到最新的表格。表格不包含创建它们的日期和时间。但是,如果我们忽略这一点,并期望将最新的五张工作表放在最右边的工作簿中(新创建的工作表的默认位置)。然后你需要弄清楚你有多少张纸并倒数。
您可以使用:Worksheets.Count
来计算所有工作表。使用此号码并向后计数。我的第一个想法是使用For Loop
Dim X As Integer
For X = (Worksheets.Count - 4) To Worksheets.Count
Next
X
将成为查找我们最新工作表的标识符。所以你应该将它合并到我们的循环中。您希望将循环放在此For Block中。
<强>循环强>
有很多方法可以在工作表中查找值,但您需要弄清楚工作表的最后一行是什么。没有它,我们就不知道代码何时应该停止。
如果所有J单元格中都有值,则可以使用Do Until
循环。然后,您只需将整行插入待定周
看起来像是:
Dim XLrow As Integer
XLrow = 1
Do Until Worksheets(1).Cells(XLrow, "J") = ""
If Worksheets(1).Cells(XLrow, "J") = "Pending" Then
Worksheets(1).Range(XLrow & ":" & XLrow) = Worksheets("Pending week").Cells(XLrow, "J").Value
End If
XLrow = XLrow + 1
Loop
您需要将范围更改为要复制的范围的长度。 注意:Pending值区分大小写,因此请记住这一点。
好的,这就是创建代码所需要的。当然,您需要更改值以适合您自己的工作簿,但这是基础。