Фильтровать и копировать данные с одного листа на другой - PullRequest
0 голосов
/ 10 апреля 2019

У меня проблема с фильтрацией даты из первого листа рабочей книги и последующим копированием всего в другую рабочую книгу.В первой части моего кода я выбираю книгу, с которой хочу работать.Когда я запускаю свой код, он просто копирует все данные, не фильтруя их, и я не знаю, что в этом плохого.

Sub macro()

Dim customerBook As Workbook
Dim filter As String
Dim caption As String
Dim customerFilename As String
Dim customerWorkbook As Workbook
Dim targetWorkbook As Workbook
Dim LastRow As Long

' make weak assumption that active workbook is the target
Set targetWorkbook = Application.ActiveWorkbook

' get the customer workbook
filter = "Text files (*.xlsx),*.xlsx"
caption = "Please select an input file "
customerFilename = Application.GetOpenFilename(filter, , caption)

Set customerWorkbook = Application.Workbooks.Open(customerFilename)

    Sheets("Sheet1").Activate

    LastRow = Range("A1").CurrentRegion.Rows.Count
    Range("A1:CA" & LastRow).Select

    Selection.AutoFilter Field:=39, Criteria1:=Array( _
        "0", "1", "2", "3"), Operator:=xlFilterValues

    Selection.AutoFilter Field:=12, Criteria1:=">=1/1/2018", _
                        Operator:=xlFilterValues, _
                        Criteria2:="<=12/31/2019"
    Selection.Copy
    Cells.Select

    Dim dest As Range
    With Workbooks("data.xlsm").Worksheets(3)

    Sheets("data").Range("A:CA").ClearContents

    Set dest = .Range("A1")
    Selection.Copy dest
    End With
    Selection.AutoFilter
' Close customer workbook
customerWorkbook.Close False

End Sub

1 Ответ

0 голосов
/ 10 апреля 2019

Вам просто нужно добавить Selection.SpecialCells (xlCellTypeVisible). Копировать вместо Selection.Copy в ваш код.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...