当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。