2017-08-01 104 views
0

我需要幫助複製工作表的一部分並放入新工作表。不過,我只需要標題和點名稱。這是我目前的工作,但它只複製頭。根據更改的列表複製並粘貼到新工作表中

Dim num As Integer, counter As Integer, pCount As Integer 
counter = 0 
Dim rngPN As Range 
Dim pName As String 

'Header 
Sheets("Input Raw Data").Select 
Range("A1").Copy 
Sheets("Point Names").Select 
Range("A1").Select 
ActiveSheet.Paste 

'Point Names 
pName = "Point_" & num & ":" 
Set rngPN = Sheets("Point Names").Cells(Rows.Count, 2).End(xlUp).Offset(1, 0) 
pCount = Sheets("Input Raw Data").Range("A2").End(xlDown).row 
For counter = 2 To pCount 
    If Range("A" & counter).Value = pName Then 
     Range("A" & counter & ":D" & counter).Copy (rngPN) 
     Set rngPN = rngPN.Offest(1, 0) 
    End If 
Next counter 

根據提供的數據,我正在使用的列表長度不同。在此先感謝您的幫助。

+0

什麼'num'?你在哪裏定義? – BruceWayne

+0

Dim num As Integer –

+0

我的意思是,當'pName =「Point_」&num&「:」'這行時,沒有賦予num的值。你不需要在該行之前的某處添加'num = 1'嗎? – BruceWayne

回答

0

我可以用一個更簡單的方法來解決它,謝謝您的幫助@BruceWayne

Sheets("Input Raw Data").Select 
counter = WorksheetFunction.CountIf(Range("A2", Range("A2").End(xlDown)), "P*") 
counter = counter + 1 'Moves down one row because of header 

'Paste to Point Names tab 
Range("A1").Select 
Range("A1:A" & counter).Select 
Range(Selection, Selection.End(xlToRight)).Select 
Selection.Copy 
Sheets("Point Names").Select 
Range("A1").Select 
ActiveSheet.Paste 
相關問題