奇数错误91 - 未设置对象变量

时间:2016-03-14 15:03:27

标签: excel vba excel-vba

我在表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

0 个答案:

没有答案