Друзья, столкнулся с проблемой не понимаю с чем связана. Взял свой старый код и разбил на несколько блоков после чего код стал вылетать с ошибкой. Друзья, подскажите свежим взглядом что вызывает ошибку? Код хранится в GoSendBuget остальные файлы кладем в одну папку.
Возможно кто то предложит альтернативный вариант агрегации значений, я сделал через удаление дубликатов (которое не работает).
Нет, предлагаю запустить и дебаг покажет где возникает, а вот почему возникает. Ошибку вызывает
Код
Sub HeinCalc(FB As String)
Set FBB = Workbooks.Open(FB)
With Workbooks(FBB.Name).Sheets("Data")
.Range(Cells(1, 1), Cells(Last(FBB.Name, "Data", 1, "R"), 2)).RemoveDuplicates Columns:=Array(1, 2), Header:=xlYes
End With
End Sub
Причем в этой же структуре есть почти аналогичный блок (,Range, Last)
sokol92,угу. Уже пишу без нее, интересно другое, переписал все циклы по массиву начиная с 0, а не с 1, стало выдавать ошибку "Вне диапазона". Т.е. без опции Base, он по умолчанию 1? (вроде читал что без нее по умолчанию 0)
невозможное делаем сразу, чудо - требует небольшой подготовки.
У Вас длинный код - смотрите внимательно. Для того, чтобы использовать массивы с индексом от 1, указанная выше опция не нужна, достаточно при объявлении / переопределении массива указывать явно нижнюю границу. Если Option Base не указана, то по умолчанию нижняя граница массивов равна 0. Некоторые конструкции VBA, например, Split, возвращают массивы с нулевой нижней границей при любой "Option Base".
sokol92: некоторые конструкции VBA, например, Split, возвращают массивы с нулевой нижней границей при любой "Option Base"
… а некоторые методы, например ,получение массива из диапазона arr=Range.Value всегда вернут двухмерный массив, если диапазон более 1ой ячейки Массивы в VBA
Во всех делах очень полезно периодически ставить знак вопроса к тому, что вы с давних пор считали не требующим доказательств (Бертран Рассел) ►Благодарности сюда◄