在我使用的工作表工具中,我有一个到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
答案 0 :(得分:2)
这有点在评论中跳舞,但根据我的经验,除非对象(工作表,图表等)是活动/选定对象,否则有些事情不起作用。我没有明确的清单,但我在过去遇到过同样的问题,并按照你的方式解决了问题(使对象生效)。
我也从来没有弄清楚为什么会这样。我花了一些时间来寻找,但最终只是把它写下来,因为微软是微软并继续前进。