Ссылка на диапазон листа не нужна? - PullRequest
0 голосов
/ 01 февраля 2020

Мне поручено очистить код для моей компании, и я читаю оригинальный код. Это пронизано выборами и активациями, от которых я планирую избавиться. Ниже появляется несколько раз по всему сценарию. Есть ли причина, по которой Worksheets (2) .UsedRange используется сам по себе? Будет ли причина держать это здесь? Это выглядит избыточным для меня.

Sub Active_Check()

Worksheets(2).Activate

LastRow = ActiveSheet.Cells(Rows.Count, "A").End(xlUp).Row

Worksheets(2).UsedRange ' Why is this here?
Worksheets(2).UsedRange.AutoFilter Field:=12, Criteria1:="<=" & Date - 7

Ответы [ 2 ]

1 голос
/ 01 февраля 2020

Я предполагаю, что этот вызов .UsedRange является попыткой сброса используемого диапазона листа. Я видел, что это было предложено вокруг inte rnet ( пример ), хотя я не нашел, чтобы это был очень эффективный и непротиворечивый способ сбрасывать UsedRange. Но, чтобы ответить на ваш вопрос, я считаю, что именно это пытался сделать первоначальный автор.

1 голос
/ 01 февраля 2020

Может быть, это объяснение поможет:

Sub Active_Check()

    'select the sheet 2
    Worksheets(2).Activate

    'calculates the last row on sheet 2
    LastRow = ActiveSheet.Cells(Rows.Count, "A").End(xlUp).Row

    'this is usually used to assign to ranges/arrays. Not needed here.
    Worksheets(2).UsedRange ' Why is this here?

    'everything done before this point is useless because is not used in here.
    'This is filtering on sheet 2 all the data by the column 12 with criteria lesser or equal than
    'Date variable minus seven.
    Worksheets(2).UsedRange.AutoFilter Field:=12, Criteria1:="<=" & Date - 7
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...