Как получить диапазон от А2 до конца (без выбора оператора) - PullRequest
0 голосов
/ 03 января 2019

Я пытаюсь скопировать и вставить из одной рабочей книги в другую рабочую книгу, но получаю ошибку метода автофильтра класса Range с ошибкой. Я обнаружил, что эта ошибка возникает, когда я не указываю свою конечную строку. Например, если мое поле для копирования заканчивается в строке 500, я должен точно установить диапазон (A2, AJ500). Однако эти данные (конец строки) можно менять каждый месяц. Это может быть AJ700, AJ600 и т. Д. Есть ли способ сделать мой диапазон (A2, End Row) и заставить макрос работать без ошибки Ошибка класса Range?

Пожалуйста, дайте мне знать, если вам не понятен мой вопрос. Спасибо.

Option Explicit

Sub Macro1()


    Dim wb As Workbook, wbO As Workbook
    Dim ws As Worksheet, wsO As Worksheet


    Set wb = ThisWorkbook

    Set ws = wb.Sheets("Copyingfrom")


    Set wbO = Workbooks.Add("Output.xlsm")


    With wbO

        Set wsO = wbO.Sheets("OutputSheet")
        ActiveSheet.AutoFilterMode = False

With ws.Range("A2:AJ500") --> this is the field that I want to run as something like (A2:end) 

        .AutoFilter Field:=36, Criteria1:="1"
        .SpecialCells(xlCellTypeVisible).Copy
        End With

        wsO.Range("I3").PasteSpecial Paste:=xlPasteValuesAndNumberFormats, Operation:= _
    xlNone, SkipBlanks:=False, Transpose:=False

    End With


End Sub

Ответы [ 2 ]

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

Самый простой способ:

With ws.Range("A2").CurrentRegion ...

Это автоматически определит ваш диапазон независимо от того, какой у вас последний ряд.

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

Копировать в рабочую книгу

Код

Option Explicit

Sub CopyRange()

    Dim ws As Worksheet, wsO As Worksheet
    Dim lngLastRow As Long

    Set ws = ThisWorkbook.Sheets("Copyingfrom")
    Set wsO = Workbooks("Output.xlsm").Sheets("OutputSheet")

    With ws
        lngLastRow = .Cells(.Rows.Count, "A").End(xlUp).Row
        With .Range("A2:AJ" & lngLastRow)
            .AutoFilter Field:=36, Criteria1:="1"
            .SpecialCells(xlCellTypeVisible).Copy
        End With
        wsO.Range("I3").PasteSpecial Paste:=xlPasteValuesAndNumberFormats
        .AutoFilterMode = False
    End With

    Application.CutCopyMode = False

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