Не удается записать массив в отфильтрованную и сгруппированную таблицу - PullRequest
0 голосов
/ 16 мая 2018

У меня проблемы с записью массива, определенного в VBA, в диапазон таблицы, которая была сгруппирована и отфильтрована.

Запись массива в диапазон таблицы выполняется с помощью:

Sheets(1).ListObjects(1).ListRows(1).Range = MyArray

Это отлично работает с отфильтрованной таблицей (т.е. фильтрует строки с помощью кнопок фильтра в заголовках строк).Он также отлично работает в сгруппированной таблице (т. Е. С некоторыми столбцами, сгруппированными с использованием Data -> Outline -> Group.

Однако, при объединении этого массива неправильно записывается в ячейки.Массив [1,2,3,4,5,6,7,8] записывается как [1,2,3,1,2,3,4,5], если я сгруппирую столбцы 2 и 3 в таблицеЭто НЕ тот случай, если я также не отфильтровал таблицу.

У кого-нибудь есть идеи, что здесь происходит? Пример рабочей книги можно найти здесь . Он содержитпростая таблица и одна подпрограмма, которая пытается записать массив в таблицу.

Любая помощь будет принята с благодарностью!

BR Torben

1 Ответ

0 голосов
/ 23 мая 2018

ОК, поэтому я нашел обходной путь / подтверждение того, что это ошибка в Excel. Если вы выберете ячейку за пределами диапазона таблицы до вставки массива, она будет работать нормально, даже если активны как фильтрация, так и группировка. Почему это так, я понятия не имею. Это неуклюжее решение (я не люблю выбирать ячейки через VBA), но оно работает.

(Извините, я изначально разместил его как комментарий, а не как ответ).

Если у кого-нибудь есть более элегантное решение, мне все равно было бы интересно его увидеть.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...