2017-06-02 104 views
1

我想所有行从包含在塔T文本“Allscripts公司”Pipeline Report纸上复印开始粘贴行如何复制和。从特定细胞中的另一片

然后,我想将它们粘贴到从“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 

回答

0

这是一个不好的做法,但我们不知道你的表是如何设置的呢,那么我建议这样的:

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).Rowlr = lr + 1并且将lr定义为13以外的循环,并且Range("A" & lr + 1)使用lr而不是lr + 1