如何利用excel vba提取指定条件的数据

我现在有几十年的数据(存储格式见图片),请问我如何利用vba将指定年份的数据全部提取出来呢?... 我现在有几十年的数据(存储格式见图片),请问我如何利用vba将指定年份的数据全部提取出来呢? 展开
 我来答
xiangjuan314
推荐于2016-02-11 · TA获得超过3.3万个赞
知道大有可为答主
回答量:2.9万
采纳率:0%
帮助的人:2781万
展开全部
Sub Macro1()
dim years as string
years ="2000"
    Rows("1:1").Select
    Selection.AutoFilter
    ActiveSheet.cells.AutoFilter Field:=4, Criteria1:=years 
End Sub

以上代码定于years 变量,可根据设置年份

然后选择第一行,生成高级筛选,筛选条件是第四列,筛选内容是变量years

追问

很感谢,但您的这个代码有问题,运行之后就只有表头还在了(见图)。因为表格很多,但都是按照同一个格式存储的。我想要的效果是通过vba来将指定年份(一年或者多年,比如2001-2005年)的数据另存到另外一个excel中。请大神帮忙解决一下,谢谢!!!

追答
没有内容证明AutoFilter Field:=4, Criteria1:=years 这些条件不存在这个表格里面呀啊,,,你要确定你筛选哪些列,哪些内容,还不行的话,你上存文件吧
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
三条桥聚星
2019-02-21 · TA获得超过2万个赞
知道答主
回答量:123
采纳率:42%
帮助的人:23.1万
展开全部
可以的,vba和透视表都可以。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
鱼木混猪哟
高粉答主

2015-11-17 · 专注Office,尤其Excel和VBA
鱼木混猪哟
采纳数:6078 获赞数:33682

向TA提问 私信TA
展开全部
代码如下:
请保存成名为BOOK的97-2003格式文件
并把所有的数据文件,放到与这个文件同一个文件夹中,再执行程序
Sub main()
f = Dir(ThisWorkbook.Path & "\" & "*.xls*")
Do While f <> ""
If f = "BOOK.xls" Then GoTo eee
Workbooks.Open ThisWorkbook.Path & "\" & f
arr = ActiveWorkbook.Sheets(1).Range("A1").CurrentRegion
For i = 2 To UBound(arr)
If ActiveWorkbook.Sheets(1).Cells(i, "D") = "2000" Then '这里是提取2000年数据,如果是其他年份,将2000更改
k = ThisWorkbook.Sheets(1).Range("A65536").End(xlUp).Row + 1
ActiveWorkbook.Sheets(1).Rows(i).Copy ThisWorkbook.Sheets(1).Rows(k)
End If
Next i
Workbooks(f).Close
eee:
f = Dir
Loop
End Sub
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
heaven小惠
2015-11-17 · TA获得超过295个赞
知道小有建树答主
回答量:577
采纳率:37%
帮助的人:158万
展开全部
透视表也可以。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 2条折叠回答
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式