活动表与工作表对象

时间:2015-05-25 06:13:34

标签: excel vba excel-vba

在我使用的工作表工具中,我有一个到Sharepoint列表的链接表。我写的一个宏刷新表,并删除任何过滤器,如果有任何激活。

我对此代码的问题是通过快速更改代码解决的,但我不太清楚为什么活动表参考修复了这个问题,并希望从其他开发人员获得VBA的一些反馈。代码如下:

代码抛出错误:工作表类的方法失败

  Dim ResourceTableSheet As Worksheet

  Set ResourceTableSheet = ThisWorkbook.Worksheets("ResourceTableSheet")
  If (ResourceTableSheet.AutoFilterMode And ResourceTableSheet.FilterMode) Or ResourceTableSheet.FilterMode Then
            ResourceTableSheet.ShowAllData  <-- **method of worksheet class failed error here**
  End If

解决方案 - 工作代码

  Dim ResourceTableSheet As Worksheet
  Set ResourceTableSheet = ThisWorkbook.Worksheets("ResourceTableSheet")

  ResourceTableSheet.Activate
  If (ActiveSheet.AutoFilterMode And ActiveSheet.FilterMode) Or ActiveSheet.FilterMode Then
            ActiveSheet.ShowAllData
   End If

1 个答案:

答案 0 :(得分:2)

这有点在评论中跳舞,但根据我的经验,除非对象(工作表,图表等)是活动/选定对象,否则有些事情不起作用。我没有明确的清单,但我在过去遇到过同样的问题,并按照你的方式解决了问题(使对象生效)。

我也从来没有弄清楚为什么会这样。我花了一些时间来寻找,但最终只是把它写下来,因为微软是微软并继续前进。