2017-06-02 76 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