特定于情境的表单控件启用/禁用

时间:2014-07-25 14:06:22

标签: excel vba

我非常擅长使用Excel开发人员工具(我正在使用Excel 2013),而我正忙着使用/创建宏。我创建了一个宏,如果你应用了一个特定的过滤器,点击一个按钮表单控件将重置所有字段,或者在Sort&amp ;;下运行'Clear'。过滤。但是你仍然可以点击按钮,尽管没有应用过滤器,因此得到错误消息'运行时错误'1004':工作表类的ShowAllData方法失败'。

我的问题是,我可以以任何方式禁用此按钮,当未应用过滤器时,它会保持不活动状态,但在应用过滤器时会重新激活吗?我希望这是有道理的。提前谢谢!

1 个答案:

答案 0 :(得分:0)

这意味着您正在使用.ShowAllData方法。这个问题有多种解决方法。

Conditionning

with activesheet
    if .filtermode then
        .showalldata
    end if
end with

使用不同的方法

ActiveWorkbook.Worksheets("WorkSheetName").AutoFilter.Sort.SortFields.Clear

错误处理(Hacky)

On Error Resume Next
    ActiveSheet.ShowAllData
On Error GoTo 0