Excel 尝试使用其他工作表中的单元格筛选工作表

Excel 尝试使用其他工作表中的单元格筛选工作表,excel,vba,Excel,Vba,因此,我的第一个工作表是“宏”按钮工作表,其中包含我用来操作工作簿中数据的所有宏,我正在尝试制作一个按钮,该按钮接收特定单元格中的输入,然后将包含数据的工作表过滤为仅包含输入值的行 我收到一个运行时错误“1004”:Range类的自动筛选方法失败 该按钮包含以下代码: Private Sub CommandButton1_Click() Dim lr As Long With ThisWorkbook.Sheets("Part List") lr = .Cells

因此,我的第一个工作表是“宏”按钮工作表,其中包含我用来操作工作簿中数据的所有宏,我正在尝试制作一个按钮,该按钮接收特定单元格中的输入,然后将包含数据的工作表过滤为仅包含输入值的行

我收到一个
运行时错误“1004”:Range类的自动筛选方法失败

该按钮包含以下代码:

Private Sub CommandButton1_Click()
    Dim lr As Long
    With ThisWorkbook.Sheets("Part List")
        lr = .Cells(.Rows.Count, "A").End(xlUp).Offset(1, 0).Row
        .Range("A1:E" & lr).AutoFilter field:=5, Criteria1:=ThisWorkbook.Sheets("Macro").Cells(1, 1).Value
    End With
End Sub
这是“宏”表

这是button宏试图筛选的页面

您的条件由一个值ony组成,因此它没有数组,也没有
运算符:=xlFilterValues
参数

Private Sub CommandButton1_Click()
    Dim lr As Long
    With ThisWorkbook.Sheets("Part List")
        lr = .Cells(.Rows.count, "A").End(xlUp).Offset(1, 0).Row
        .Range("A1:A" & lr).AutoFilter field:=1, Criteria1:=ThisWorkbook.Sheets("Macro").Cells(1, 1).Value
    End With
End Sub
其中,我还采用了
字段:=1
,因为您的“数据库”仅包含1列(范围(“A1:A”&lr))

如果您真的需要在列“E”(第五列从A开始)上进行筛选,那么只需更改即可

.Range("A1:A" & lr).AutoFilter field:=1


但是您的范围只有一列:
ThisWorkbook.Sheets(“Part List”).range(“A1:A”&lr)
@BigBen,是的,我在查看答案时注意到了它……编辑了,所以我注意到使用Field=5产生了运行时1004错误,如果删除,它只会将我的数据表过滤到标题。我忘了写
(A1:G)
中的范围,它满足了A:E,其他列也将被过滤。我们可以在它前面放置一些Msgbox.Range(“A1:A”&lr)。Address和
Msgbox ThisWorkbook.Sheets(“宏”).Cells(1,1)。Value
,让我们看看……那么宏所属的工作簿中没有“宏”工作表
.Range("A1:E" & lr).AutoFilter field:=5