VBA按照输入的值进行筛选

qq_41314520 2017-12-12 10:26:19


刚开始学习VBA,想要实现:V38815和V38816单元格是下拉菜单,可以选择>、≥、<、≤;W38815和W38816输入数值,完成筛选区间设置,点击筛选根据输入的值,显示筛选结果。

Private Sub CommandButton1_Click()
' 筛选
'
Selection.AutoFilter
ActiveSheet.Range("$A$1:$AJ$38808").AutoFilter Field:=22, Criteria1:= _
"Worksheets("Sheet1").Range("V38815:W38815")", Operator:=xlAnd, Criteria2:= _
"Worksheets("Sheet1").Range("V38816,W38816")"
End Sub

这样为什么不对?
...全文
1011 3 点赞 打赏 收藏 举报
写回复
3 条回复
切换为时间正序
当前发帖距今超过3年,不再开放新的回复
发表回复
赵4老师 2017-12-18
注释掉所有On Error Resume Next语句,在VBA IDE中运行, 出错后点击调试,光标会停在出错的那条语句处, 或者 事先在怀疑可能有逻辑错误的语句处设置断点,运行经过断点时中断, 此时可以在立即窗口中使用 ?变量名 或 ?函数名(函数参数) 或 过程名(参数) 辅助调试。
  • 打赏
  • 举报
回复
X-i-n 2017-12-12
引用
V38815和V38816单元格是下拉菜单,可以选择>、≥、<、≤
这一条不需要写代码,直接用单元格的数据验证,验证条件为序列,输入这几个符号。 第一个问题是你的比较符号写错了,应该是半角的符号
>    <    >=    <=
第二个问题,筛选条件错了,应该是取值,而不是Range
Criteria1:=">5" 
'用单元格拼出来应该是
Range("V38815") & Range("W38815")
第三个问题,引号错了,看你的写法应该是初学?一个变量放到引号里,它就是一个值等于变量名的纯字符串,不再是一个变量。你的代码扔到IDE里是要直接报红的。 最终要的结果是">5",由">"和"5"拼出来,所以代码是 ">" & "5",">"比较符号和"5"是V38815、W38815的单元格取值,所以应该是
Range("V38815") & Range("W38815")
  • 打赏
  • 举报
回复
qq_41314520 2017-12-12
引用 1 楼 Runnerchin 的回复:
引用
V38815和V38816单元格是下拉菜单,可以选择>、≥、<、≤
这一条不需要写代码,直接用单元格的数据验证,验证条件为序列,输入这几个符号。 第一个问题是你的比较符号写错了,应该是半角的符号
>    <    >=    <=
第二个问题,筛选条件错了,应该是取值,而不是Range
Criteria1:=">5" 
'用单元格拼出来应该是
Range("V38815") & Range("W38815")
第三个问题,引号错了,看你的写法应该是初学?一个变量放到引号里,它就是一个值等于变量名的纯字符串,不再是一个变量。你的代码扔到IDE里是要直接报红的。 最终要的结果是">5",由">"和"5"拼出来,所以代码是 ">" & "5",">"比较符号和"5"是V38815、W38815的单元格取值,所以应该是
Range("V38815") & Range("W38815")
是的 刚开始接触 谢谢!
  • 打赏
  • 举报
回复
相关推荐
发帖
VBA
加入

2111

社区成员

VBA(Visual Basic for Applications)是Visual Basic的一种宏语言,是在其桌面应用程序中执行通用的自动化(OLE)任务的编程语言。
申请成为版主
帖子事件
创建了帖子
2017-12-12 10:26
社区公告
暂无公告