xlPastevalues给了我一个对象定义的错误VBA

xlPastevalues给了我一个对象定义的错误VBA,vba,excel,Vba,Excel,晚上好,粘贴值部分给了我一个对象定义的错误,我不知道为什么要进行测试以确保有可见的单元格可从中复制: Sub foo() Dim ws As Worksheet: Set ws = Sheets("inbd") Dim wsDestination As Worksheet: Set wsDestination = Sheets("test") LastRow = ws.Cells(ws.Rows.Count, "A").End(xlUp).Row ws.Range("A1:N" &a

晚上好,粘贴值部分给了我一个对象定义的错误,我不知道为什么要进行测试以确保有可见的单元格可从中复制:

Sub foo()

Dim ws As Worksheet: Set ws = Sheets("inbd")
Dim wsDestination As Worksheet: Set wsDestination = Sheets("test")

LastRow = ws.Cells(ws.Rows.Count, "A").End(xlUp).Row
    ws.Range("A1:N" & LastRow).AutoFilter Field:=1, 
Criteria1:=Worksheets("test").Cells(1, 26).Value
    ws.Range("f2:f" & LastRow).SpecialCells(xlCellTypeVisible).Copy Range("C6")
DestinationRow = wsDestination.Cells(wsDestination.Rows.Count, "C").End(xlUp).Row + 1
    wsDestination.Range("C" & DestinationRow).PasteSpecial xlPasteValues

Application.CutCopyMode = False
ws.Range("A1:N" & LastRow).AutoFilter Field:=1




End Sub
。有多个单元格用于过滤器的测试

If Application.WorksheetFunction.Countif(ws.Range("A1:N" & LastRow),Worksheets("test").Cells(1, 26).Value) > 0
您也已经粘贴了这一行:

If LastRow > 1 
您已粘贴到C6,现在剪贴板为空,因此无法再次粘贴

也许你想要:

ws.Range("F2:F" & LastRow).SpecialCells(xlCellTypeVisible).Copy Range("C6")

您已经将复制的单元格粘贴到inbd表C6中

你的代码没有多大意义。在筛选、复制和粘贴数据之前,确定最后一行数据,然后再次粘贴。我建议你先过滤,然后确定两张纸上的最后一行,然后在没有错误的粘贴到C6步骤的情况下一个接一个地进行复制和粘贴

ws.Range("F2:F" & LastRow).SpecialCells(xlCellTypeVisible).Copy 
DestinationRow = wsDestination.Cells(wsDestination.Rows.Count, "C").End(xlUp).Row + 1
wsDestination.Range("C" & DestinationRow).PasteSpecial xlPasteValues