Как мне объявить и назначить объект для этой строки кода? - PullRequest
0 голосов
/ 01 мая 2019

Я новичок в VBA, и мне сложно понять концепцию объявления объекта в коде ...

Следующий код является частью события изменения рабочего листа, которое указывает пользователю на «F6», когда пользователь пытается выбрать любой из трех диапазонов «FILLABLE» имен, установленных на листе 1 моей рабочей книги. Я объединил этот код из нескольких операторов if, использующих функцию «union», и теперь я получаю ошибку времени выполнения «424» всякий раз, когда запускаю свой макрос.

Set ws = ThisWorkbook.Sheets("Inventory in-out")

If target.Row < 14 And Intersect(target, Union(FILLABLE_TOP_MER, FILLABLE_TOP_REG, FILLABLE_TOP_NOMSG)) Is Nothing Then
    Range("F6").Select

1 Ответ

3 голосов
/ 01 мая 2019

Union работает с Range объектами. Предполагая, что FILLABLE_TOP_MER является String, содержащим имя Name, вам необходимо получить Range для следующих имен:

Dim FillableTopMerRange As Range
Set FillableTopMerRange = ThisWorkbook.Names(FILLABLE_TOP_MER).RefersToRange

Dim FillableTopRegRange As Range
Set FillableTopRegRange = ThisWorkbook.Names(FILLABLE_TOP_REG).RefersToRange

'...

If ... And Intersect(Target, Union(FillableTopMerRange, FillableTopRegRange, ...)) Is Nothing Then...
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...