如何利用excel vba提取指定条件的数据
发布网友
发布时间:2022-04-21 17:12
我来回答
共4个回答
热心网友
时间:2022-05-29 11:01
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 这些条件不存在这个表格里面呀啊,,,你要确定你筛选哪些列,哪些内容,还不行的话,你上存文件吧
热心网友
时间:2022-05-29 11:01
可以的,vba和透视表都可以。
热心网友
时间:2022-05-29 11:02
代码如下:
请保存成名为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
热心网友
时间:2022-05-29 11:02
透视表也可以。