Неудачный выбор в диапазоне объединения - PullRequest
0 голосов
/ 21 ноября 2018

Я пытаюсь выбрать диапазон, который был объединен в одну переменную, но он не работает.

Sub filter()
    'Clear prev result table
    Worksheets("main").Range("A3").CurrentRegion.Delete

    'Declare variable
    Dim selectedRows As Range
    Set selectedRows = Worksheets("contacts").Range("A1:B1")


    'Get total used range in contacts database
    numRows = Mid(Worksheets("contacts").UsedRange.Address, 9)
    For Each cell In Worksheets("contacts").Range("B1:B" & numRows)
        If cell.Value = Worksheets("main").Range("B1").Value Then
            'If true, push into array called selectedRows
            Set selectedRows = Application.Union(selectedRows, Worksheets("contacts").Range(cell.Address))
        End If
    Next

    selectedRows.Select '<------ fail here
    Copy Worksheets("main").Range("A3")
End Sub

Макрос не выполнен, и в сообщении об ошибке указано: Выберите метод или класс Range не удался.Что не так с моим кодом?

1 Ответ

0 голосов
/ 21 ноября 2018

Вы получаете сообщение об ошибке, потому что лист "контакты" не активен.Добавьте эту строку:

Worksheets("contacts").Activate

Как это:

Sub filter()
    'Clear prev result table
    Worksheets("main").Range("A3").CurrentRegion.Delete

    'Declare variable
    Dim selectedRows As Range
    Set selectedRows = Worksheets("contacts").Range("A1:B1")


    'Get total used range in contacts database
    numRows = Mid(Worksheets("contacts").UsedRange.Address, 9)
    For Each cell In Worksheets("contacts").Range("B1:B" & numRows)
        If cell.Value = Worksheets("main").Range("B1").Value Then
            'If true, push into array called selectedRows
            Set selectedRows = Application.Union(selectedRows, Worksheets("contacts").Range(cell.Address))
        End If
    Next

    Worksheets("contacts").Activate

    selectedRows.Select '<------ fail here

    'this line below is incorrect
    'Copy Worksheets("main").Range("A3")
End Sub

Я рекомендую прочитать этот пост: Как избежать использования Select в Excel VBA - это поможет вамулучшите ваш код.

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