Excel精英培训网

 找回密码
 注册
数据透视表40+个常用小技巧,让你一次学会!
查看: 3944|回复: 4

[已解决]按日期范围查询 问题

[复制链接]
发表于 2016-3-24 20:57 | 显示全部楼层 |阅读模式
本帖最后由 lufabao 于 2016-3-25 11:41 编辑

1.png 2.png

想把【图1】表中范围日期内的条目查询出表示在【图2】表中
现在查询 只会复制“会员缴费明细表”几个字
请教代码错在哪
----------------------------------------------------------------------------------------------
Sub test()
Dim xR As Range
Dim D1, D2 As Date

D1 = InputBox("开始日期")
D2 = InputBox("结束日期")
If D1 > D2 Then
MsgBox ("日期输入錯誤")
Exit Sub
End If
Set xR = Range("会员缴费表!I3").CurrentRegion
With xR
.AutoFilter
.AutoFilter Field:=1, Criteria1:=">=" & D1, Operator:=xlAnd, Criteria2:="<=" & D2
Range("会员缴费表!A3").CurrentRegion.Copy
Range("会员缴费查询!a5").PasteSpecial xlValues
.AutoFilter
End With
End Sub
----------------------------------------------------------------------------------------------




最佳答案
2016-3-24 22:36
这样试试,你的日期在第9列啊
  1. Sub test()
  2.     Dim xR As Range
  3.     Dim D1, D2 As Date
  4.     D1 = InputBox("开始日期")
  5.     D2 = InputBox("结束日期")
  6.     If D1 > D2 Then
  7.         MsgBox ("日期输入錯誤")
  8.         Exit Sub
  9.     End If
  10.     With Cells.CurrentRegion
  11.         .AutoFilter Field:=9, Criteria1:=">=" & D1, Operator:=xlAnd, Criteria2:="<=" & D2
  12.         .SpecialCells(xlCellTypeVisible).Copy Sheet11.Range("a5")
  13.         .AutoFilter
  14.     End With
  15. End Sub
复制代码
excel精英培训的微信平台,每天都会发送excel学习教程和资料。扫一扫明天就可以收到新教程
发表于 2016-3-24 21:02 | 显示全部楼层
Range("会员缴费表!A3")
这种是函数写法
vba是sheets("会员缴费表“).range("a3")
对象.对象
回复

使用道具 举报

 楼主| 发表于 2016-3-24 21:50 | 显示全部楼层
qh8600 发表于 2016-3-24 21:02
Range("会员缴费表!A3")
这种是函数写法
vba是sheets("会员缴费表“).range("a3")

Set xR = Sheets("会员缴费表").Range("a3").CurrentRegion
With xR
.AutoFilter
.AutoFilter Field:=1, Criteria1:=">=" & D1, Operator:=xlAnd, Criteria2:="<=" & D2
Sheets("会员缴费表").Range("a3").CurrentRegion.Copy
Sheets("会员缴费查询").Range("a5").PasteSpecial xlValues


改成这样 还是复制 "会员缴费表"
回复

使用道具 举报

发表于 2016-3-24 22:36 | 显示全部楼层    本楼为最佳答案   
这样试试,你的日期在第9列啊
  1. Sub test()
  2.     Dim xR As Range
  3.     Dim D1, D2 As Date
  4.     D1 = InputBox("开始日期")
  5.     D2 = InputBox("结束日期")
  6.     If D1 > D2 Then
  7.         MsgBox ("日期输入錯誤")
  8.         Exit Sub
  9.     End If
  10.     With Cells.CurrentRegion
  11.         .AutoFilter Field:=9, Criteria1:=">=" & D1, Operator:=xlAnd, Criteria2:="<=" & D2
  12.         .SpecialCells(xlCellTypeVisible).Copy Sheet11.Range("a5")
  13.         .AutoFilter
  14.     End With
  15. End Sub
复制代码
回复

使用道具 举报

 楼主| 发表于 2016-3-24 23:15 | 显示全部楼层
我试了一下,查询的很正确,十分感谢!最佳答案我不会操作,等明天再做,再次感谢。
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-4-29 06:32 , Processed in 0.419945 second(s), 10 queries , Gzip On, Yac On.

Powered by Discuz! X3.4

Copyright © 2001-2020, Tencent Cloud.

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