Excel VBA – 仅复制和粘贴可见的表格行

我想复制只有在一个表中的可见行到同一个工作簿中的一个单独的工作表。 我对使用'ListObject'方法来处理表格有点新(有几个原因,就我的模块其余部分而言,直接引用表格是一个更好的方法)

下面是我最好的尝试,当我运行它时,我得到了'运行时错误'438''的'Sheets("Sheet8").Range("A1").Paste'线,我一直在淘互联网一个小时,现在试图找出我做错了什么,我怎么需要重新措词它,以便将复制的数据粘贴到另一个表/表? 任何援助将不胜感激!

谢谢,

亚当

 Private Sub CopyVisibleAreaOfTable(ByVal TableName As String) Const FN_NAME As String = "CopyVisibleAreaOfTable" On Error GoTo catch Dim TargetTable As ListObject Dim NumberOfAreas As Long Set TargetTable = Sheets("Adj1").ListObjects(TableName) ' Check that there are fewer than 8192 seperate areas With TargetTable.ListColumns(1).Range NumberOfAreas = .SpecialCells(xlCellTypeVisible).Areas(1).Cells.Count Debug.Print NumberOfAreas End With If NumberOfAreas = 0 Then 'Do something to trigger an error message Else TargetTable.Range.SpecialCells(xlCellTypeVisible).Copy Sheets("Sheet8").Range("A1").Paste Application.CutCopyMode = False End If finally: Exit Sub catch: Call ErrorReport(FN_NAME, True, Err.Number, Err.Description, "Table Name: " & TableName) Resume finally End Sub 

将目标指定为.Copy方法的一部分:

 TargetTable.Range.SpecialCells(xlCellTypeVisible).Copy _ Destination:=Sheets("Sheet8").Range("A1")