Страницы: 1
RSS
Ошибка при создании массива
 
Добрый день.
Объявляю массив
 Dim aAr() 'массив отмеченных листов с диапазоном дат
 Dim runAr() 'массив рабочих дней
При попытке загрузить данные выходит ошибка
     runAr = Worksheets(aAr(n, 1)).Range(Cells(2, 25), Cells(iNam + 2, 25 + ird)).Value 'Y=25 столбик
в aAr(n, 1) имя листа
На всякий случай прилагаю файл пробника
 
Фрезератор, здравствуйте
Попробуйте так
При обращении к НЕактивному листу МАЛО указать лист только для Range, его нужно указать и для всех Cells внутри него.
Подробнее: КАК ОБРАТИТЬСЯ К ДИАПАЗОНУ ИЗ VBA
Изменено: Jack Famous - 05.07.2022 09:34:25
Во всех делах очень полезно периодически ставить знак вопроса к тому, что вы с давних пор считали не требующим доказательств (Бертран Рассел) ►Благодарности сюда◄
 
Jack Famous, спасибо за подсказку, всё получилось. Но в статье часто звучит фраза "активный лист".
Я предполагал, что если загрузить в массив aAr = Range("E2:G" & i + 1).Value то загрузка будет с первого листа. Получается что будет попытка загрузить с активного листа?
 
Цитата
Фрезератор написал:
загрузка будет с первого листа
а откуда такие мысли? Если Вы открыли книгу, активировали 3-ий лист, то откуда VBA должен понять, что загружать надо с первого?  ;)
В статье фраза звучит не просто так: если лист никак не указан - то по умолчанию будет определяться диапазон на активном листе активной книги.
Даже самый простой вопрос можно превратить в огромную проблему. Достаточно не уметь формулировать вопросы...
 
и активной книгой может быть вообще не та книга, в которой макрос написан
обращение к
Range
Cells
Columns
Rows

без указания хозяина - это все обращения к соответствующим диапазонам активного на момент обращения листа
Программисты - это люди, решающие проблемы, о существовании которых Вы не подозревали, методами, которых Вы не понимаете!
 
Фрезератор, в дополнение к вешеизложенным советам, скажу, что, для уверенности, вы всегда можете вывести в дебаг или проверить иным способом полный путь активной книги (ActiveWorkbook.FullName) и имя активного листа (ActiveSheet.Name)
Изменено: Jack Famous - 05.07.2022 12:18:04
Во всех делах очень полезно периодически ставить знак вопроса к тому, что вы с давних пор считали не требующим доказательств (Бертран Рассел) ►Благодарности сюда◄
 
Парни, спасибо. Я уже разобрался. Начиная что то новое неизбежно начинаешь спотыкаться.
Страницы: 1
Наверх