Я использую несколько именованных диапазонов, расположенных в разных листах. Мне нужно читать и записывать эти диапазоны во многих ситуациях на протяжении всего кода VBA.Сохранение ссылки диапазона в глобальной переменной
Так что мой вопрос: Каков правильный способ хранения этих ссылок диапазона в глобальных переменных для быстрого доступа? Или есть лучший способ?
Я попытался декларирование глобальные переменные:
Public WS_BOARD As Worksheet
Public RNG_BOARD As Range
и инициализирует их на Workbook_Open
:
Private Sub Workbook_Open()
Set WS_BOARD = Worksheets("BOARD")
Set RNG_BOARD = WS_BOARD.Range("NR_BOARD")
End Sub
Это работает нормально, за исключением того, если мой код разбивает эти глобальные переменные сбрасываются в Nothing
и не может быть используется в дальнейшем (т. е. в обработчиках событий рабочего листа).
Конечно, я всегда могу использовать что-то вроде
Worksheets("BOARD").Range("NR_BOARD")
везде в моем коде, но я думаю, что это повлияет на производительность, потому что, очевидно, необходимо для поиска объектов с использованием имен строк, не говоря уже о его быть не DRY.