2017-08-01 100 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 
相关问题