VBA Скопировать значение на другой лист с автофильтром - PullRequest
0 голосов
/ 29 января 2019

Я хочу скопировать значение из текущего листа в другие книги с автоматическим фильтром, создав новый, после запуска кода у меня появляется ошибка:

Переменная объекта или переменная блока не установлена

Вот код:

Sub copyvaluetoanothersheet()
Dim selectrange As Range
Dim wb As Workbook
Dim Dsheet As Worksheet
Dim Lastrow As Long

Application.ScreenUpdating = False

Set wb = Workbooks.Add

Set Dsheet = wb.Worksheets(1)

    Lastrow = Sheet2.Range("A" & Rows.Count).End(xlUp).Row

    selectrange = Sheet2.Range("A2:BP" & Lastrow)

    With Worksheets("Production data")
    .AutoFilterMode = False
    selectrange.AutoFilter field:="Branch", Criteria1:="Direct Response"
    selectrange.SpecialCells(xlCellTypeVisible).EntireRow.Copy

End With
    Dsheet.PasteSpecial xlPasteValues

Application.ScreenUpdating = True

End Sub

Большое спасибо

Ответы [ 2 ]

0 голосов
/ 29 января 2019

Попробуйте следовать

Sub cpVisible()
Dim MyProdName As String
Dim FilteredRange As Range
Dim myArr As Variant

    Sheets("Production Data").Range("$A$2:$BP$50000").AutoFilter Field:="Branch", Criteria1:="Direct Response"
    Set FilteredRange = Sheets("Production Data").Range("$A$2:$BP$50000").SpecialCells(xlCellTypeVisible)
    FilteredRange.Copy Sheets("Dsheet").Range("A1")

End Sub
0 голосов
/ 29 января 2019

Вы должны использовать Set при назначении переменных объекта (вы делали это в другом месте).

Set selectrange = Sheet2.Range("A2:BP" & Lastrow)

Обратите внимание, что ваша смесь листовИмена кодов, имен вкладок и индексов сбивают с толку, и ваш код выдаст ошибку, если ничего не видно.

...