В настоящее время у меня есть Excel с примерно 200000+ записей, и мне нужно фильтровать данные на основе столбца. Столбец имеет около 5 значений, и мне нужно отфильтровать 2 значения на одном листе, а остальные 3, чтобы остаться на том же листе.
Теперь вместо использования сравнения ячеек по ячейкам, чтобы проверить, попадает ли значение ячейки в какое-либо из двух вышеуказанных значений, а затем вырезать, вставить строку на другой лист. Это не будет работать с 200k + записями и просто зависает.
Вместо этого я планирую использовать метод автоматического фильтра. Я попытался использовать функцию «Запись макроса», но проблема в том, что она выдает ошибку типа
"Excel не может создать или использовать ссылку на диапазон данных, поскольку он слишком сложный. Попробуйте одно из следующих
Используйте данные, которые можно выбрать в прямоугольнике
Использовать данные с того же листа "
Кроме того, как скопировать и вставить только отфильтрованные значения на другой лист? Если я пытаюсь скопировать вставку напрямую или специальную вставку как «значения», то копирование вставляется даже в скрытые строки.
Ниже приведен код макроса, который я вмешивался в
Sub Macro34()
'
' Macro34 Macro
'
'
Rows("1:1").Select
Selection.AutoFilter
ActiveSheet.Range("$A$1:$T$81335").AutoFilter Field:=6, Criteria1:="=242", _
Operator:=xlOr, Criteria2:="=244"
Cells.Select
Selection.Copy
ActiveWindow.SmallScroll Down:=21
Sheets("Sheet2").Select
ActiveWindow.SmallScroll Down:=-18
Range("A1").Select
ActiveSheet.Paste
Application.CutCopyMode = False
Selection.ClearContents
Range("A1").Select
Sheets("Sheet1").Select
Selection.Copy
Sheets("Sheet2").Select
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=False
Sheets("Sheet2").Select
ActiveWindow.SmallScroll Down:=93
Sheets("Sheet1").Select
ActiveWindow.SmallScroll Down:=-9
ActiveWindow.ScrollRow = 1
Rows("1:1").Select
Application.CutCopyMode = False
Selection.AutoFilter
End Sub
Там могут быть некоторые ненужные строки кода выше, поскольку он сгенерирован с использованием функции «макрос записи».
Может кто-нибудь, пожалуйста, помогите мне. Проблема заключается в количестве данных в Excel. Может ли Excel не обрабатывать столько данных в VBA? Использую Excel 2007