.Autofilter没有在代码中工作

时间:2015-10-17 19:07:10

标签: excel-vba vba excel

此代码无效

ActiveSheet.Select
ActiveSheet.AutoFilterMode = False
With ActiveSheet

        .AutoFilterMode = False

        .Range("A1:D1").AutoFilter

End With

给出错误"范围类的方法失败"

1 个答案:

答案 0 :(得分:0)

您的代码在我的系统上没有任何错误。此处提到的用户体验很少,可以探究系统故障的可能原因。

A)。当您在VBA中经常更改工作表并获得“激活范围类失败方法”或“选择范围类失败方法”等时,只需在其之前重新键入工作表命令

例如:

表( “工作1”),选择 范围( “A1:D1”)。选择

OR

表(工作1 “)的范围。(” A1:D1" )。选择

VBA中的此代码,如果过于频繁使用或提到的工作表不是Sub中当前选定的工作表,将导致错误,并且要更正此问题,只需重新键入。当相关表格是活动表格时,应激活宏。

B)当进一步继续下面的情况时,也可以给出错误1004。

Private Sub ComboBox1_Change()

Application.ScreenUpdating = False 
Sheets("Sheet3").AutoFilterMode = False 
Sheets("Sheet3").Range("d1:d6000").AutoFilter Field:=1, Criteria1:=ComboBox1.Value, visibledropdown:=False 
Application.ScreenUpdating = True 

End Sub

OR VB: Private Sub ComboBox1_Change()

Application.ScreenUpdating = False 
Sheets("Sheet3").AutoFilterMode = False 
Sheets("Sheet3").Range("A1:D6000").AutoFilter Field:=4, Criteria1:=ComboBox1.Value, visibledropdown:=False 
Application.ScreenUpdating = True 

End Sub

在第一个范围内,范围只有一列,因此您不能将字段指定为4 在第二个中,范围有4列,即从A到D,在这里您可以指定从1到4的任何字段

C)来自MSDN 目的地必须包括源范围。仅指定列名称意味着您要填充该列中不太可能是所需的behvaiour的每一行。

HTH