VBA excel中如何使用宏将一个工作表中符合条件的某部分数据复制放在另一个工作表?

就是把某项符合条件的单元格下方所有数据复制出去,比如,把9月4日的数据都复制出来,如果有9月3号的都会复制出去

以下代码,数据在sheet1的A到D列,表头在第二行
取前三个复制到H列

Set conn = CreateObject("adodb.connection")
conn.Open "provider=microsoft.jet.oledb.4.0;extended properties=excel 8.0;data source=" & ThisWorkbook.FullName
Sql = "select top 3 * from [sheet1$A2:D] order by 销量 desc"
[H3].CopyFromRecordset conn.Execute(Sql)
conn.Close: Set conn = Nothing
[A2:D2].Copy [H2]追问

可以在VBA里面套offset函数不?我用offset有条件的选择了部分区域数据,如何讲这部分区域数据复制到另外工作表,区域数据大小不固定,数据是每天滚动的

追答

你的条件是什么?
我用的数据库查询的方法,我以为你只是要销量前三名的呢

追问

我的条件是查询最近30天的数据,滚动更新。比如8月7~9月5号的数据,明天就会自动更新8月8~9月6号数据,我是用offset函数引用的

追答

Set conn = CreateObject("adodb.connection")
conn.Open "provider=microsoft.jet.oledb.4.0;extended properties=excel 8.0;data source=" & ThisWorkbook.FullName
Sql = "select * from [sheet1$A2:D] where 时间>=now()-30"
[H3].CopyFromRecordset conn.Execute(Sql)
conn.Close: Set conn = Nothing
[A2:D2].Copy [H2]

把SQL改一下就好了,数据库查询比较快

如果你的日期都是降序排列的话,可以通过确定最后一行的行号直接把区间内的全部复制过来

温馨提示:答案为网友推荐,仅供参考
相似回答