2017-08-01 93 views
1

我試圖將數據從一張紙複製到另一張紙上。正在粘貼的表格中有一個表格,我想將這些值粘貼到表格中。我在這裏有這個代碼來做副本,但它不會做副本。如何僅從一張紙上覆制值並將其粘貼到設置了表格的工作表中?

Dim LastRow1 As Long 
Dim s As Long, w As Long 

With Worksheets("PlaceHolderDD") 
LastRow1 = .Cells(.Rows.COUNT, "A").End(xlUp).Row 
End With 

With Worksheets("KYC Feedback Page 2") 
w = .Cells(.Rows.COUNT, "A").End(xlUp).Row 
End With 

For s = 2 To LastRow1 
With Worksheets("PlaceHolderDD") 
.Rows(s).Resize(, 6).Copy 'Destination:=Worksheets("KYC Feedback Page 2 
").Range("A" & w) 
    Worksheets("KYC Feedback Page 2").Range("A" & w).PasteSpecial 
Paste:=xlPasteValues 

    w = w + 1 
    End With 
    Next s 
+0

(1)「*它不這樣做的副本*」做這意味着它什麼都不做?你能否描述它實際上做了什麼,而不是預期的行爲? (2)我看到你增加'W',但你根本不使用'W',這對我來說沒有意義。 –

+0

它什麼也沒做。我想要w的增量來填充表格 – cookiemonster

+0

好的,但是你還沒有在代碼中使用'w'。不知道更多細節很難說清楚。但是你的'For'循環從工作表中的第2行運行到最後一行'PlaceHolderDD'複製它,然後將每一行都過濾到名爲'Table1 [No.]的完全相同的範圍內,所以這是我的想法。 –

回答

1

根據你的代碼,假設你在所有行的數據,你有過的複製粘貼,似乎你只粘貼到表中的第一行。

UPDATE:在我的測試下面的修復工作對我來說,根據OP解決方案更改代碼,並增加了額外的忽略空白行

Sub mySub() 
    Dim LastRow1 As Long 
    Dim s As Long, w As Long 

    With Worksheets("PlaceHolderDD") 
     LastRow1 = .Cells(.Rows.Count, "A").End(xlUp).Row 
    End With 

    With Worksheets("KYC Feedback Page 2") 
     w = .Cells(.Rows.Count, "A").End(xlUp).Row 
    End With 

    For s = 2 To LastRow1 
     Worksheets("PlaceHolderDD").Rows(s).Copy 
     Sheets("KYC Feedback Page 2").Range("Table1[No.]").Select 
     Selection.Offset(w, 0).Select 'Additional Line here 
     Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, _ 
      SkipBlanks:=False, Transpose:=False 
     w = w + 1 
    Next s 

    Dim Rng As Range 
    On Error Resume Next 
    Set Rng = Sheets("KYC Feedback Page 2").Range("Table1[No.]").SpecialCells(xlCellTypeBlanks) 
    On Error GoTo 0 
    If Not Rng Is Nothing Then 
     Rng.Delete Shift:=xlUp 
    End If 
End Sub 
+0

你應該[避免使用select](https://stackoverflow.com/documentation/excel-vba/1107/vba-best-practices/9292/avoid-using-select-or-activate)並使用'表格(「KYC反饋Page 2「)。Range(」Table1 [No。]「)。Offset(w,0).PasteSpecial Paste:= xlPasteValues,Operation:= xlNone,SkipBlanks:= False,Transpose:= False' instead。 –

+0

這一個不會將複製的值插入到表中。它從行3開始粘貼他們 – cookiemonster

+0

我真的很感謝你們的幫助。我在更新的帖子中的代碼完美地工作,但是它擴展了表的大小,使其包含來自工作表 – cookiemonster

相關問題