У меня есть диапазон с 170000 строк в нем. Я фильтрую столбец A для одного значения и возвращаю соответствующие значения в столбце B.
Я хочу, чтобы эти значения выгружались в массив, чтобы я мог быстро бросить их в словарь (с ключом, являющимся значением, которое я отфильтровал столбец A).
Проблема в том, что SpecialCells(xlCellTypeVisible)
ведет себя непоследовательно.
Если я проведу тот же тест на меньшем диапазоне, значения просто сбрасываются в массив. Но с таким большим диапазоном, как мой, он возвращает только первое значение в диапазоне. Кроме того, я могу использовать ту же строку для копирования на другой лист. Я просто не могу заставить его заполнить массив.
foo = ws1.Range(tbl1Name & "[ID]").SpecialCells(xlCellTypeVisible)
Работает с небольшими диапазонами, но возвращает только первый результат в таком большом диапазоне, как у меня (менее 50 результатов). foo становится массивом, содержащим все переменные.
ws1.Range(tbl1Name & "[ID]").SpecialCells(xlCellTypeVisible).Copy ws2.Range("A1")
Работает с большим диапазоном и успешно копирует все необходимые данные.
Итак, мой вопрос: как мне заполнить массив без дополнительного шага копирования на пустой лист при автофильтрации большого диапазона таблиц? (Excel 2013)