Excel精英培训网

 找回密码
 注册

QQ登录

只需一步,快速开始

你正在寻找更好的Excel学习教程吗?Excel技巧80集+数据透视表+函数初中高全套+VBA80集,想学的这儿全都有
查看: 328|回复: 17

[已解决] [已解决]如何使用VBA自动筛选月份?

[复制链接]
发表于 2017-5-24 16:10 | 显示全部楼层 |阅读模式
excel精英培训的微信平台,每天都会发送excel学习教程和资料。扫一扫明天就可以收到新教程
本帖最后由 lkk0063 于 2017-5-26 14:30 编辑

如何使用VBA自动筛选月份?使用版本: excel 2003

1.jpg

2.jpg

VBA-test.zip

32.7 KB, 下载次数: 4

大灰狼1976发布于 2017-5-25 20:00 |显示全部回帖
有新的方法你试下,没在你的附件内搞,做了个简单示例,附件你看下。

相关帖子

发表于 2017-5-24 16:17 | 显示全部楼层
设计表格时,为什么不将c列的数据分为两列:一列表示月,一列表示日。
回复 支持 反对

使用道具 举报

发表于 2017-5-24 17:18 | 显示全部楼层
  1. Sub aaa()
  2. Dim n&
  3. n = InputBox("please input month") + 1
  4. Sheets("AA").Range("a5:az" & [a65536].End(3).Row).AutoFilter Field:=3, Operator:=xlFilterValues, Criteria2:=Array(1, DateSerial(Year(Date), n, 0))
  5. End Sub
复制代码
回复 支持 反对

使用道具 举报

发表于 2017-5-24 17:20 | 显示全部楼层
2010 可以 , 其它版本不知道

下面是录制的 , 供参考
ActiveSheet.Range("$A$2:$X$15").AutoFilter Field:=4, Operator:=xlFilterValues, Criteria2:=Array(1, "5/24/2015")
回复 支持 反对

使用道具 举报

 楼主| 发表于 2017-5-25 09:12 | 显示全部楼层

hi 大灰狼1976
执行后,出现以下 Error Msg
2017-05-25_090934.jpg
4.jpg
回复 支持 反对

使用道具 举报

 楼主| 发表于 2017-5-25 09:14 | 显示全部楼层
爱疯 发表于 2017-5-24 16:17
设计表格时,为什么不将c列的数据分为两列:一列表示月,一列表示日。

这是当初别人设计的表格,一直沿用,未更改变动
下次我会再想想是否要变更,谢谢你的建议

回复 支持 反对

使用道具 举报

发表于 2017-5-25 14:24 | 显示全部楼层
可能2010版(2007版?)以下不适用吧,我是录制宏后改的,2010版没问题。
回复 支持 反对

使用道具 举报

发表于 2017-5-25 20:00 | 显示全部楼层    本楼为最佳答案   
有新的方法你试下,没在你的附件内搞,做了个简单示例,附件你看下。

test.zip

22.71 KB, 下载次数: 5

回复 支持 反对

使用道具 举报

 楼主| 发表于 2017-5-26 08:54 | 显示全部楼层
大灰狼1976 发表于 2017-5-25 20:00
有新的方法你试下,没在你的附件内搞,做了个简单示例,附件你看下。

你好,
谢谢 大灰狼1976 帮忙, 我会再试试看的

回复 支持 反对

使用道具 举报

 楼主| 发表于 2017-5-26 09:18 | 显示全部楼层
大灰狼1976 发表于 2017-5-25 20:00
有新的方法你试下,没在你的附件内搞,做了个简单示例,附件你看下。


你好,
经过你的提示, 我已将代码更改如下, 已可以输入月份, 谢谢!
但是,
我想同时筛选 "月份" 与 数据 A5~A65536 后面为 -??08 及 -??13 筛选, 这要如何修改?
(分开是可以执行)

  1. Private Sub CommandButton1_Click()
  2. Dim n&
  3. n = InputBox("pls input month")
  4. With Sheets("AA")
  5. .Range("a5:az" & [a65536].End(3).Row).AutoFilter Field:=3, Criteria1:=">=" & DateSerial(Year(Now), n, 1), Operator:=xlAnd, Criteria2:="<=" & DateSerial(Year(Now), n + 1, 0)
  6. .Range("A5").AutoFilter Field:=1, Criteria1:="*" & "-" & "??13", Operator:=xlAnd, Criteria2:="*" & "-" & "??08"
  7. End With
  8. End Sub
复制代码

VBA-test.zip

27.92 KB, 下载次数: 2

回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

小黑屋|手机版|Archiver|Excel精英培训 ( 豫ICP备11015029号 )

GMT+8, 2017-6-26 01:19 , Processed in 0.109201 second(s), 27 queries , Gzip On, Memcache On.

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表