过滤excel数据集时,ShowAllData失败

时间:2014-12-26 18:23:52

标签: excel vba excel-vba excel-2013

我有一个突然停止使用ShowAllData命令的ETL文件。在之前的循环中,数据 IS 正在过滤。

吉文斯:

wkstSourceSheet在另一个模块中建立,作为包含oSourceTable的工作表,oSourceTable是要上载的数据和/或清理数据的原始表。这些步骤包含在函数中,按模块逻辑分组。所有本地控件都包含在Local_Controls模块中。

循环步骤

  • 删除任何排序&数据过滤器(当失败时它在第二个循环上)
  • 应用新的排序&过滤
  • 保存目标文件(如果一个打开,目标文件与此循环不同)
  • 如果需要,打开目标文件
  • 清除目的地
  • 中的适用数据
  • 将新数据粘贴到目标
  • 清除一些变量
  • 循环

代码

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

我已经能够通过将其替换为

来获得解决方法
If wkstSourceSheet.FilterMode = True Then
    oSoureSheet.Range.Autofilter
    oSoureSheet.Range.Autofilter
End If

但是,我试图找出数据被明确过滤后失败的原因。

1 个答案:

答案 0 :(得分:0)

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

您对Excel有两种不同类型的自动过滤器有问题吗?

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

如果手动用户与工作表交互(不仅仅是代码运行),用户可能会以两种不同的方式启动过滤器......