Я пытаюсь скопировать только видимые строки в таблице в отдельный рабочий лист в той же книге. Я немного новичок в использовании подхода «ListObject» для работы со столами (по нескольким причинам ссылка на таблицу напрямую - лучший подход к остальной части моего модуля)Excel VBA - копирование и вставка только видимых строк таблицы
Ниже приведена моя лучшая попытка , когда я запускаю его, я получаю ошибку «run-time error» 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
Используйте '.PasteSpecial xlPasteAll' вместо' .Paste' –
Это работал ну, большое спасибо! – AdamDynamic