我在表1中有一个数据库 - 数据库表。我创建了VBA代码,根据我粘贴到工作表2 - Runsheet的两个条件,过滤并仅提取该数据库所需的块。这是输入标准的工作表。
启动程序的按钮A位于数据库工作表上,在运行表上我创建了另一个按钮,用于激活数据库工作表中的按钮A.
因此,使用某些标准,它可以完美地工作:数据库在后端进行过滤,并且提取右块。但是对于其他标准,代码给出了错误91 - 对象变量或未设置块变量。
如何使用一个过滤条件,绝对不能与其他条件一起使用。请指教? :)
调试器突出显示此行
fr = .Range(“F:F”)。Find(What:= Range(“C2”)。Value,After:= Range(“F2”),SearchDirection:= xlNext).Row
Private Sub CommandButton3_Click()
Dim db As Worksheet
Dim ds As Worksheet
Dim rs As Worksheet
Dim lr As Integer
Dim fr As Integer
Dim lc As Integer
Set db = Worksheets("Database")
Set ds = Worksheets("Def1")
Set rs = Worksheets("RunSheet")
With ds
AutoFilterMode = False
.Range("F2:M2").AutoFilter Field:=1, Criteria1:=Range("C2").Value
.Range("F2:M2").AutoFilter Field:=2, Criteria1:=Range("C3").Value
fr = .Range("F:F").Find(What:=Range("C2").Value, After:=Range("F2"), SearchDirection:=xlNext).Row
lr = .Cells(Rows.Count, "H").End(xlUp).Row
Worksheets("Def1").Range(.Cells(fr, "H"), .Cells(lr, "M")).Copy
AutoFilterMode = False
End With
rs.Range("F4").PasteSpecial
rs.Activate
Application.CutCopyMode = False
rs.Range("A1").Select
End Sub