VBA代码,用于根据条件过滤数据并将数据传输到其他图纸
我试图通过比较PDF值=1.4和需要复制到Sheet1中的筛选数据来筛选I列中的数据,即PDF版本。 这里我得到的错误是运行时error-424对象必需的VBA代码,用于根据条件过滤数据并将数据传输到其他图纸,vba,excel,Vba,Excel,我试图通过比较PDF值=1.4和需要复制到Sheet1中的筛选数据来筛选I列中的数据,即PDF版本。 这里我得到的错误是运行时error-424对象必需的 Sub FilterMe() Dim sh As Worksheet, ws As Worksheet Dim LstR As Long, rng As Range Dim var As Variant Dim myWb As Excel.Workbook Set myWb = ActiveWork
Sub FilterMe()
Dim sh As Worksheet, ws As Worksheet
Dim LstR As Long, rng As Range
Dim var As Variant
Dim myWb As Excel.Workbook
Set myWb = ActiveWorkbook
var = 1.4
Sheets("Sheet1").Range("A1:L20").ClearContents
Set sh = Sheets("DataSheet") 'set the sheet to filter
Set ws = Sheets("Sheet1") 'set the sheet to paste
Application.ScreenUpdating = False
With sh 'do something with the sheet
LstR = .Cells(.Rows.Count, "I").End(xlUp).Row 'find last row
.Columns("I:I").AutoFilter Field:=9, Criteria1:=PDF.var 'ERROR coming here
Set rng = .Range("A1:I" & LstR).SpecialCells(xlCellTypeVisible)
rng.Copy ws.Cells(ws.Rows.Count, "A").End(xlUp).Offset(1)
.AutoFilterMode = False
End With
End Sub
什么是准则1:=PDF.var 此外,在筛选单个列时,字段应始终为1
.Columns("I:I").AutoFilter Field:=1, Criteria1:=var
您可能希望对代码进行这种小小的(有注释的)重构:
Sub FilterMe()
Dim sh As Worksheet, ws As Worksheet
Dim var As Variant
var = 1.4
Set sh = Worksheets("DataSheet") 'set the sheet to filter
Set ws = Worksheets("Sheet1") 'set the sheet to paste
ws.Range("L1", ws.Cells(ws.Rows.Count, "A").End(xlUp)).ClearContents '<--| clear "paste" sheet columns A:L cells from row 1 down to column A last not empty one
Application.ScreenUpdating = False
With sh '<--| reference your "copy" sheet
With .Range("I1", .Cells(.Rows.Count, "A").End(xlUp)) '<--| reference its columns A:L cells from row 1 down to column A last not empty cell
.AutoFilter Field:=9, Criteria1:=var '<--| filter on referenced range 9th column with 'var'
If Application.WorksheetFunction.Subtotal(103, .Cells) > 1 Then .SpecialCells(xlCellTypeVisible).Copy ws.Cells(ws.Rows.Count, "A").End(xlUp).Offset(1) '<--| if any cell filtered other than headers (which get always filtered) then copy filtered values to "paste" sheet
End With
.AutoFilterMode = False
End With
Application.ScreenUpdating = True
End Sub
Sub-FilterMe()
将sh设置为工作表,ws设置为工作表
作为变量的Dim-var
var=1.4
设置sh=工作表(“数据表”)'将工作表设置为筛选
设置ws=工作表(“Sheet1”)'将工作表设置为粘贴
ws.Range(“L1”,ws.Cells(ws.Rows.Count,“A”).End(xlUp)).ClearContents“在您正在使用的PDF.var
错误行中,但您没有PDF
对象。改用Criteria1:=var
。@AdityaVarma,你通过了吗?