当Excel数据集被过滤时,ShowAllData失败

我有一个突然停止在ShowAllData命令工作的ETL文件。 在之前的循环中,数据被过滤。

吉文斯:

wkstSourceSheet在另一个模块中被build立为包含oSourceTable的表单,该表单是要上传的数据和/或清理数据的始发表。 这些步骤包含在function中,通过模块进行逻辑分组。 所有本地控件都包含在Local_Controls模块中。

循环步骤

  • 删除数据上的所有sorting和filter(失败时在第二个循环中)
  • 应用新的sorting和filter
  • 保存目标文件,如果一个是打开的,目标文件是不同的这个循环
  • 如果需要,打开目标文件
  • 清除目标中的适用数据
  • 将新数据粘贴到目标
  • 清除一些variables
  • 循环

If wkstSourceSheet.FilterMode = True Then wkstSourceSheet.ShowAllData End If 

我已经能够得到一个解决方法,用这个replace它

 If wkstSourceSheet.FilterMode = True Then oSoureSheet.Range.Autofilter oSoureSheet.Range.Autofilter End If 

然而,我试图找出为什么它会失败,当数据被清楚地过滤。

(如果可以的话,我会把它写成评论,但我还没有足够的声望)

你可能会遇到Excel有两种不同types的自动filter的问题吗?

一个用于简单的工作表范围,另一个用于ListObjects(Excel“表格”)。

如果手动用户与工作表交互(不只是运行代码),用户可能以两种不同的方式启动了filter。