我得到了
运行时错误'1004',Range类的自动过滤方法失败。
在执行
Sheets("InitialFourColumns Check").Rows.AutoFilter
我尝试了Stack Overflow中给出的解决方案。
Sub D_CopyValidData()
'Filter and move valid data
'Move Subcription data
Sheets("InitialFourColumns Check").Select
'ActiveSheet.AutoFilterMode = False
usedRowsSubCheck1 = Sheets("InitialFourColumns Check").Range("A10000").End(xlUp).Row
'Selection.AutoFilter
Sheets("InitialFourColumns Check").Rows.AutoFilter
'Sheets("InitialFourColumns Check").AutoFilterMode = False
'Sheets("InitialFourColumns Check").Range("A10000").End(xlUp).Rows.AutoFilter
ActiveSheet.Range("$A$1:$AA" & usedRowsSubCheck1).AutoFilter Field:=11, Criteria1:="TRUE"
usedRowsSubCheck2 = Sheets("InitialFourColumns Check").Range("A10000").End(xlUp).Row
If usedRowsSubCheck2 > 1 Then
Range("A2:Y" & usedRowsSubCheck2).Copy
Sheets("Valid Data").Select
Range("B2").Select
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks:=False, Transpose:=False
Sheets("InitialFourColumns Check").Rows.AutoFilter
Else
Sheets("InitialFourColumns Check").Rows.AutoFilter
End If
试试这个,我想应该可以。
Option Explicit
Sub D_CopyValidData()
With ThisWorkbook.Sheets("InitialFourColumns Check")
Dim usedRowsSubCheck1 As Long
usedRowsSubCheck1 = .Cells(.Rows.Count, 1).End(xlUp).Row
If .AutoFilterMode Then .AutoFilterMode = False
.Range("A1", "AA" & usedRowsSubCheck1).AutoFilter 11, "TRUE"
usedRowsSubCheck1 = .Cells(.Rows.Count, 1).End(xlUp).Row
If usedRowsSubCheck1 > 1 Then
.Range("A2:Y" & usedRowsSubCheck1).Copy
ThisWorkbook.Sheets("Valid Data").Range("B2").PasteSpecial xlPasteValues
End If
.AutoFilterMode = False
End With
End Sub