从一个表列复制到另一列时,PasteSpecial失败

时间:2019-12-02 11:05:19

标签: excel vba

我试图在重置表格时将一个过滤的表格列的内容复制到另一表格列。

我在.ListColumns(1).DataBodyRange.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone行出现错误,并显示错误消息

  

Range类的PasteSpecial方法失败。

Sub UpdateTables()

Dim tbl As ListObject, tbl_t As ListObject

Set tbl = Sheets(1).ListObjects(1)
Set tbl_t = Sheets(2).ListObjects(1)

' Copy CUSIP of instruments (level 0)
With tbl
    .Range.AutoFilter Field:=.ListColumns("Level").Index, Criteria1:="0", Operator:=xlFilterValues
    .ListColumns("CUSIP").DataBodyRange.SpecialCells(xlCellTypeVisible).Copy
    .AutoFilter.ShowAllData
End With
' Reset and paste new data
With tbl_t
    .ShowTotals = False
    ' Reset table and clear non-formula cells
    If .DataBodyRange.Rows.Count > 1 Then
       .DataBodyRange.Offset(1).Resize(.DataBodyRange.Rows.Count - 1, .DataBodyRange.Columns.Count).Rows.Delete
       .DataBodyRange.Rows(1).SpecialCells(xlCellTypeConstants).ClearContents
    End If
    ' Paste
    .ListColumns(1).DataBodyRange.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone ' <-- CODE FAILS HERE
    .ShowTotals = True ' Used to present summized values in graph
End With
Application.CutCopyMode = False

End Sub

1 个答案:

答案 0 :(得分:0)

使用复制和粘贴功能时,如果在Copy之前Paste,则不能在两者之间使用任何其他操作。