Почему определенный диапазон не работает с End (xlDown) .Select? - PullRequest
1 голос
/ 07 июня 2019

Я запускаю функцию с определенным диапазоном и при попытке использовать End. (XlDown). Выберите, я получаю сообщение «Метод выбора класса Range не выполнен».

Я отредактировал код ниже, чтобы показать только часть проблемы. Буквально через два часа пробуя все, я не могу заставить его работать.

Досадная часть заключается в том, что мне приходится использовать определенные диапазоны, поскольку функция является частью гораздо большего Sub, который не работает должным образом после использования Select и Activate.

Function OutputFunction()

    Dim rng8 As Range
    Set rng8 = ThisWorkbook.Worksheets(5).Range("A2")

    rng1.ClearContents 'Works like a charm.
    rng2.Copy 'No problem here either.

    rng8.End(xlDown).Select 'Fails misserably.
    ActiveCell.Offset(0, 13).Select
    Range(Selection, Range("N3")).Select
    ActiveSheet.Paste

Ответы [ 2 ]

0 голосов
/ 07 июня 2019
    rng2.Copy destination:= rng8.parent.range(rng8.End(xlDown).Offset(0, 13), rng8.parent.Range("N3"))

«Буквально через два часа пробуя все, я не могу заставить его работать».

Первое правило макросов Excel: никогда, никогда не используйте SELECT в макросе Excel.

Второе правило макросов Excel: не использовать Select в макросах Excel

Третий .....

0 голосов
/ 07 июня 2019

Попробуйте:

Option Explicit

Sub test()

    Dim rng8 As Range

    'Have in mind that you refer to a sheet based on it s index, NOT with its name!
    'If sheets order change you will refer to another sheet
    With ThisWorkbook.Worksheets(5)

        Set rng8 = .Range("A2")
        rng8.Select

        .Range(rng8, rng8.End(xlDown)).Select
    End With

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