我正在尝试优化Access应用程序中Excel文件的更新处理时间,因此我想在调整大小的currentRegion上应用自动过滤器。
下面的代码是Access例程的一部分,该例程使用Access记录集数据添加/更新Excel文件。
With xlsWkSheet
.AutoFilterMode = True
lXlsRowNumber = .Cells(.Rows.Count, .Range("ColRef").Column).End(xlUp).Row
Set oXlsCurrentRegion=.Range("A1").CurrentRegion.Resize(RowSize:=lXlsRowNumber)
With oXlsCurrentRegion
.AutoFilterMode = True
lIdxCol = .Range("ColCrit1").Column
.AutoFilter Field:=lIdxCol, Criteria1:=IIf(Nz(oRecSet![ValueAccess], "") = "", "=", oRecSet![ValueAccess])
End If
Set xlsRangeAutoFilter = .SpecialCells(xlCellTypeVisible)
End With
由于oRecSet![ValueAccess]为空而在自动筛选器上应用了“ =”时,将在Excel文件的左上角显示
在1047585个记录中找到0。
当我仅对带有标题的空白文件应用自动过滤器时,我期望«找到1条记录中的0条»
我希望过滤器仅应用于oXlsCurrentRegion区域,但显然不适用!
是否可以仅在XlsCurrentRegion区域上应用空白条件?
答案 0 :(得分:0)
在The Ultimate Guide to Excel Filters with VBA Macros – AutoFilter Method上,我们可以阅读下面的代码,这似乎是我的问题的解决方案
Sub AutoFilter_Range()
'AutoFilter is a member of the Range object
'Reference the entire range that the filters are applied to
'AutoFilter turns filters on/off when no parameters are specified.
Sheet1.Range("B3:G1000").AutoFilter
'Fully qualified reference starting at Workbook level
ThisWorkbook.Worksheets("AutoFilter Guide").Range("B3:G1000").AutoFilter
End Sub
我们可以在How to use AutoFilters in Excel VBA Macros上阅读
AutoFilterMode和FilterMode必须设置为False值
答案 1 :(得分:0)