Я пытаюсь настроить код vba для фильтрации листа данных и вырезания строк, содержащих определенные значения, на другие листы. Ниже приведен фрагмент для одного из этих фильтров. Пока я изо всех сил пытаюсь отладить эту линию.Excel-VBA filter and move results
myRange.Offset(1).Resize(myRange.Rows.Count - 1).SpecialCells(xlVisible).Cut
Я продолжаю получать сообщение об ошибке, что я не могу запустить это на нескольких разделах. Любая помощь будет принята с благодарностью.
Sub MoveButton()
Sheets("Sheet1").Activate
Set myRange = Range(Range("A1"), Range("Z" & Cells.Rows.Count).End(xlUp))
myRange.Resize(1).AutoFilter
myRange.AutoFilter Field:=13, Criteria1:="Closed"
myRange.Offset(1).Resize(myRange.Rows.Count - 1).SpecialCells(xlVisible).Cut
Sheets.Add After:=Sheets(Sheets.Count)
Sheets("Closed").Activate
ActiveSheet.Paste
Application.CutCopyMode = False
myRange.AutoFilter
End Sub
Хорошо, это я получил, используя макрос записи. Теперь я просто не знаю, как изменить диапазоны, чтобы они автоматически отбирали все отфильтрованные строки и копировали их и вставляли их в следующую строку wmpty на следующем листе.
Sub MoveCancelled()
Sheets("Sheet1").Select
Rows("2:2").Select
Selection.AutoFilter
Selection.AutoFilter
Range("A2").Select
ActiveWindow.ScrollColumn = 7
ActiveSheet.Range("$A$2:$Z$20").AutoFilter Field:=13,Criteria1:="Closed"
Rows(3).Select ' Selecting the row to copy, but it could be more than just one row.
Selection.Copy
Sheets("Closed").Select
Rows(114).Select ' Selecting the paste location at the bottom of the next sheet.
ActiveSheet.Paste
End Sub
Я нашел эту тему и в конечном итоге отказался от всех моих других усилий.
Autofilter Macro, then copy visible data ONLY and paste to next available row
Это решение работало отлично.
Сначала выполните упражнение вручную с * Macro Recorder * включен ......... затем изучить полученный код. –
Не знаете, почему вы изменяете размер перед фильтром, вы должны фильтровать его из строки заголовка – Davesexcel
Я попытался использовать Macro Recorder. Я добавил этот код в сообщение выше. Я не уверен, как сделать диапазоны автоматически выбирать все отфильтрованные строки для вырезания/копирования или для выбора первой пустой строки на закрытом листе. – Tyler