Excel VBA自动筛选错误

时间:2017-03-14 03:23:45

标签: excel excel-vba vba

我已编写代码来比较2个巨大的Excel文件中包含的数据,并且在运行比较代码时遇到了“运行时错误”' 91' - 对象变量或未设置块变量"。有谁知道我的错误是什么?请参阅以下代码图片:

运行时错误91:

enter image description here

1 个答案:

答案 0 :(得分:1)

Range("A1").Select
Selection.AutoFilter
ActiveWorkbook.WorkSheets("Old Data").AutoFilter.Sort.SortFields.Clear 
没有参数的

Selection.AutoFilter只是一个切换。 Read More on MSDN

您收到错误的原因是您在运行宏之前没有清除过滤器。由于您没有清除它,因此.AutoFilter实际上关闭了过滤器。如果没有AutoFilter,则Sort.SortFields没有.Clear

解决方案:在开始调用所有AutoFilterMode切换之前,请确保已关闭工作表.AutoFilter

ActiveWorkbook.WorkSheets("Old Data").AutoFilterMode = False
Range("A1").Select
Selection.AutoFilter
ActiveWorkbook.WorkSheets("Old Data").AutoFilter.Sort.SortFields.Clear