Обычно я работаю с массивами, потому что это ускоряет обработку в VBA. EG
'get data
values = dataRange.value
'Do some work on values array
'set data
dataRange.value = values
Недавно мы заметили, что при выполнении того же процесса в Excel для таблицы с фильтрами Excel:
Выполняет метод получения, как и следовало ожидать, получая все значения:
'get data
values = table.DataBodyRange.value
Выполняет установщик, начиная с первой отфильтрованной строки:
'set data
table.DataBodyRange.value = values 'Starts at the visible row?!
Он делает это, даже если DataBodyRange.address
показывает, что диапазон превышает все данные
Наш В настоящее время обходной путь заключается в сохранении настроек фильтра, очистке фильтра, установке данных и повторном применении фильтра. Однако это медленно и кажется бессмысленным. Кто-нибудь знает более прямой способ выполнения этой работы?
Обход кода: