Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/vba/17.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Vba 如何仅从一张图纸复制值并将其粘贴到已设置表格的图纸中?_Vba_Excel - Fatal编程技术网

Vba 如何仅从一张图纸复制值并将其粘贴到已设置表格的图纸中?

Vba 如何仅从一张图纸复制值并将其粘贴到已设置表格的图纸中?,vba,excel,Vba,Excel,我正在尝试将数据从一张工作表复制到另一张工作表。正在粘贴到的工作表中创建了一个表,我想将这些值粘贴到该表中。我有这个代码在这里做复制,但它不做复制 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

我正在尝试将数据从一张工作表复制到另一张工作表。正在粘贴到的工作表中创建了一个表,我想将这些值粘贴到该表中。我有这个代码在这里做复制,但它不做复制

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

根据您的代码,假设您要复制粘贴的所有行中都有数据,那么您似乎只粘贴到表的第一行。以下修复在我的测试中对我有效:

更新:根据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

(1) “它不复制”这意味着它什么都不做吗?你能描述一下它实际上做了什么而不是预期的行为吗?(2) 我看到你增加了
w
,但你根本不使用
w
,这对我来说毫无意义。它一点作用也没有。我想用w的增量来填充表单OK,但在代码中根本不用
w
。如果不知道更多的细节,很难说。但是您的
For
循环从工作表的第2行运行到最后一行
placeholder DD
复制它,然后将每一行传递到名为
Table1[No.]
的完全相同的范围内,所以我认为这是您的问题。@takanuva15您不应该粗鲁,对其他用户哈哈大笑。我们这里有一个堆栈溢出。我用新代码编辑了上面的代码,这似乎有效,但在粘贴到工作表时,它从工作表的副本粘贴空白值。您应该并使用
工作表(“KYC反馈页2”)。范围(“表1[No.]”。偏移量(w,0)。粘贴特殊粘贴:=xlPasteValues,操作:=xlNone,SkipBlanks:=False,转置:=False
。此项不会将复制的值插入表中。从第三排开始贴我真的很感谢你们的帮助。我在更新后的文章中的代码是完美的,但是它扩展了表的大小,从SHITET作品中拷贝了空白行,但是它在表中隐藏了空白行。我正在考虑如何从表中删除空白行。我非常感谢您的帮助,明天将再次尝试,并让您知道如何进行。再次感谢你抽出时间。