Не удается вырезать / вставить видимые строки из автоматически отфильтрованного листа в макросе Excel 2007 - PullRequest
1 голос
/ 20 июля 2011

Мне нужно переместить строки из одного листа в несколько листов назначения на основе множества критериев.Я полагаю, что использование фильтров + копирование / вставка будет намного быстрее, чем зацикливание каждой строки и проверка ее на предмет ее принадлежности, но я не уверен, как получить полезный диапазон после фильтрации данных.Прямо сейчас я создаю диапазон видимых ячеек для захвата следующим образом:

Set rngSuspect = ActiveSheet.Cells.SpecialCells(xlVisible)

, затем вставляю его следующим образом (NextRow - это Integer, содержащий следующий пустой номер строки):

rngSuspect.Cut Destination:=Sheets("Suspect WWAs").Rows(NextRow)

Это происходит с сообщением The command you chose cannot be performed with multiple selections. Select a single range and click the command again. Я предполагаю, что это связано с тем фактом, что данные фактически разбиты на несколько областей из-за отфильтрованных строк.Я бы не стал зацикливаться на каждом ряду в диапазоне и перемещать их по отдельности.Конечно, здесь есть более элегантное решение ...

Ответы [ 2 ]

3 голосов
/ 20 июля 2011

Обходной путь для сохранения вашего кода: вы не можете вырезать множественный выбор, но вы можете скопировать его. Затем вы удалите это как вырезать .

С уважением,

0 голосов
/ 31 августа 2016

Обходной путь, который я имею, состоит в том, чтобы отсортировать лист так, чтобы все строки, которые Вы должны вырезать или скопировать, стали смежными.Может потребоваться довольно сложная сортировка, но тогда вы можете применить фильтр, и строки должны остаться смежными и их можно безопасно вырезать или скопировать с помощью обычного видимого кода выбора.

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