此代码无效
ActiveSheet.Select
ActiveSheet.AutoFilterMode = False
With ActiveSheet
.AutoFilterMode = False
.Range("A1:D1").AutoFilter
End With
给出错误"范围类的方法失败"
答案 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