excel - Excel VBA自动过滤一系列数字
问题描述
大家好,我在使用 vba 中的自动过滤功能时遇到了麻烦。在我的过滤条件之一中,我试图将其设置为过滤掉任何大于 99999 的数字(它会过滤掉邮政编码,有时会在末尾添加一个额外的数字)。我尝试了几种不同的方法,但似乎无法使这件事起作用。其他每一行都按预期工作,但我放注释的那一行。感谢您的帮助!
shFullYearData.Range(shFullYearData.Cells(1, 1), shFullYearData.Cells(1, LastColumn)).Select
'shFullYearData.Range("A1:Z1").Select
Selection.AutoFilter
shFullYearData.Range(StartCell, shFullYearData.Cells(LastRow, LastColumn)).AutoFilter Field:=12, Criteria1:=PWSelection
shFullYearData.Range(StartCell, shFullYearData.Cells(LastRow, LastColumn)).AutoFilter Field:=26, Criteria1:=">=1"
'''shFullYearData.Range(StartCell, shFullYearData.Cells(LastRow, LastColumn)).AutoFilter Field:=18, Criteria1:="<100000",'''
'This line above isn't working properly to filter out any numbers above 100,000
shFullYearData.Range(StartCell, shFullYearData.Cells(LastRow, LastColumn)).AutoFilter Field:=3, Operator:= _
xlFilterValues, Criteria2:=Array(0, "12/31/2019")
shFullYearData.Range(StartCell, shFullYearData.Cells(LastRow, LastColumn)).Sort Key1:=Range("G1"), Order1:=xlAscending, Header:=xlYes, Key2:=Range("B1"), Header:=xlYes
enter image description here
解决方案
是否:Operator:=xlAnd
解决您的问题?
.AutoFilter Field:=18, Criteria1:= _
"<999999", Operator:=xlAnd
如果数字被格式化为字符串(在单元格的左侧并且在单元格的左上角有一个绿色三角形),您可以使用以下宏将它们转换为数字。
Sub string_to_numb()
For Each cel In Selection.Cells
cel.Value = cel * 1
Next
End Sub
在那之后过滤应该起作用,因为在那之前vba无法过滤数字,因为没有数字,只有由数字组成的文本。
推荐阅读
- android - 如何为颜色选择器添加淡入淡出效果
- javascript - 如何在 NodeJS 中结合来自 2 个不同 var 的日期和时间
- python - 完全更新 matplotlib 图(不附加数据)
- vba - 运行时错误“1004”应用程序定义或对象定义错误
- google-cloud-platform - 光束中大窗口的间隔触发
- node.js - 如何使用 pg 从 postgres 存储过程(或函数)中检索结果集
- python - 如何在 Telethon 事件处理程序中获取特定时区的时间
- json - 雪花 VARCHAR 到 VARIANT 插入“\”字符
- json - jackson - 避免序列化 getter
- javascript - 如何从 VS Code 隐藏文件