VBA Excel自动筛选突出显示唯一值并按颜色排序



我有两列数据A和B。A列包含很多重复值,但不是全部。

我想找到所有唯一的值,并将它们标记为红色,然后按颜色从上到下排序。我的代码工作正常,但当我再次单击宏按钮时,它总是显示一条错误消息:对象变量或块无效未设置。

它向我指出了这条线:

ActiveWorkbook.Worksheets("Sheet1").Autofilter.Sort.SortFields.Clear

有人知道两次单击宏按钮时出现此问题的原因吗?

准工作代码如下:

Sub sorttheuniquevaluesforme()
Selection.Autofilter
ActiveWorkbook.Worksheets("Sheet1").Autofilter.Sort.SortFields.Clear
ActiveWorkbook.Worksheets("Sheet1").Autofilter.Sort.SortFields.Add(Range( _
"A1:A1000"), xlSortOnFontColor, xlAscending, , xlSortNormal).SortOnValue.Color _
= vbRed

With ActiveWorkbook.Worksheets("Sheet1").Autofilter.Sort
.Header = xlYes
.MatchCase = False
.Orientation = xlTopToBottom
.Apply
End With
End Sub

错误是由前一行引起的。

Selection.Autofilter

当您执行第一次时,autofilter方法会创建过滤器。重新编写删除过滤器的命令。因此,在第二次执行代码时,您删除了过滤器,因此在实际引发错误的行中没有要清除的自动过滤器。

另一方面,只执行第1行并观察工作表。再次执行第1行,你会看到过滤器已经消失。

最新更新