如何从另一个工作表中的特定单元格开始复制和粘贴行

时间:2017-06-02 15:01:42

标签: excel vba excel-vba

我想复制Pipeline Report工作表中包含 T " AllScripts" 的所有行。

然后,我想将它们粘贴到另一张纸上,从" A14" 开始,然后向下。

现在,这段代码将来自" A2"但我需要它从A14开始并从那里开始。

Sub extractAllscripts() 

Dim myrange As Range 
Dim lr as Long

Sheets("Pipeline Report").Select 
Set myrange = Sheets("Pipeline Report").Range("T1", Range("T" & Rows.Count).End(xlUp)) 

For Each cell In myrange 
    If cell.Value = "Allscripts" Then 
        lr = Sheets("Macro Test Page").Range("T" & Rows.Count).End(xlUp).Row
        cell.EntireRow.Copy Destination:=Sheets("Macro Test Page").Range("A" & lr + 1) 
    End If 
Next cell 

End Sub 

1 个答案:

答案 0 :(得分:0)

这是一种不好的做法,但由于我们不知道您的工作表是如何设置的,所以我建议这样做:

<local:VideoParentPage
    xmlns:local="using:Fluent_Video_Player.Views.Shared"
    ...some unrelated XAML code...
</local:VideoParentPage>

或另一个糟糕的解决方案:

在您的代码中,将Sub extractAllscripts() Dim myrange As Range Dim lr as Long Dim myoffset As Integer Sheets("Pipeline Report").Select Set myrange = Sheets("Pipeline Report").Range("T1", Range("T" & Rows.Count).End(xlUp)) myoffset = 13 For Each cell In myrange If cell.Value = "Allscripts" Then lr = Sheets("Macro Test Page").Range("T" & Rows.Count).End(xlUp).Row cell.EntireRow.Copy Destination:=Sheets("Macro Test Page").Range("A" & lr + myoffset) End If myoffset = 1 Next cell End Sub 替换为lr = Sheets("Macro Test Page").Range("T" & Rows.Count).End(xlUp).Row,并将lr = lr + 1定义为在循环外部的13和lr使用Range("A" & lr + 1)而不是{{ 1}}。