Excel精英培训网

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

[已解决]如何实现每个工作表中都只要指定日期数据

[复制链接]
发表于 2013-10-31 13:31 | 显示全部楼层 |阅读模式
5学分
本帖最后由 追梦人亮 于 2013-10-31 19:45 编辑

希望大家帮助
工作簿中有很多工作表,每个工作表中要的数据都相同,2012/10/1——2013/10/1,怎样把没用的数据删除
怎样循环实现,最好能有一个窗口出现供选择日期,同时有一个默认的日期。
最佳答案
2013-10-31 15:28
  1. Sub Test()
  2.     Dim sh As Worksheet
  3.     Dim A(), B(1 To 10 ^ 5, 1 To 3)
  4.     Dim i&, x&, y&, s&, str$


  5.     '删除统计结果
  6.     Application.DisplayAlerts = False
  7.     On Error Resume Next
  8.     Sheets("结果").Delete
  9.     On Error GoTo 0


  10.     '指定日期
  11.     x = Application.InputBox("起始日期", , "2012/10/1", , , , , 1)
  12.     y = Application.InputBox("终止日期", , "2013/10/1", , , , , 1)
  13.     If x = 0 Or y = 0 Then End


  14.     '统计
  15.     For Each sh In Sheets
  16.         A = sh.UsedRange
  17.         str = sh.Name
  18.         For i = 3 To UBound(A) - 1
  19.             If A(i, 1) >= x And A(i, 1) <= y Then
  20.                 s = s + 1
  21.                 B(s, 1) = A(i, 1)
  22.                 B(s, 2) = A(i, 2)
  23.                 B(s, 3) = str
  24.             End If
  25.         Next i
  26.     Next


  27.     '输出
  28.     If s > 0 Then
  29.         Sheets.Add after:=Sheets(Sheets.Count)
  30.         ActiveSheet.Name = "结果"
  31.         Range("a:a").NumberFormat = "yyyy/m/d"
  32.         Range("a1").Resize(s, UBound(B, 2)) = B
  33.         Columns(1).AutoFit
  34.     End If
  35. End Sub
复制代码
要指定日期数据2.rar (284.47 KB, 下载次数: 29)

要指定日期数据.zip

256.53 KB, 下载次数: 10

excel精英培训的微信平台,每天都会发送excel学习教程和资料。扫一扫明天就可以收到新教程
发表于 2013-10-31 15:28 | 显示全部楼层    本楼为最佳答案   
  1. Sub Test()
  2.     Dim sh As Worksheet
  3.     Dim A(), B(1 To 10 ^ 5, 1 To 3)
  4.     Dim i&, x&, y&, s&, str$


  5.     '删除统计结果
  6.     Application.DisplayAlerts = False
  7.     On Error Resume Next
  8.     Sheets("结果").Delete
  9.     On Error GoTo 0


  10.     '指定日期
  11.     x = Application.InputBox("起始日期", , "2012/10/1", , , , , 1)
  12.     y = Application.InputBox("终止日期", , "2013/10/1", , , , , 1)
  13.     If x = 0 Or y = 0 Then End


  14.     '统计
  15.     For Each sh In Sheets
  16.         A = sh.UsedRange
  17.         str = sh.Name
  18.         For i = 3 To UBound(A) - 1
  19.             If A(i, 1) >= x And A(i, 1) <= y Then
  20.                 s = s + 1
  21.                 B(s, 1) = A(i, 1)
  22.                 B(s, 2) = A(i, 2)
  23.                 B(s, 3) = str
  24.             End If
  25.         Next i
  26.     Next


  27.     '输出
  28.     If s > 0 Then
  29.         Sheets.Add after:=Sheets(Sheets.Count)
  30.         ActiveSheet.Name = "结果"
  31.         Range("a:a").NumberFormat = "yyyy/m/d"
  32.         Range("a1").Resize(s, UBound(B, 2)) = B
  33.         Columns(1).AutoFit
  34.     End If
  35. End Sub
复制代码
要指定日期数据2.rar (284.47 KB, 下载次数: 29)
回复

使用道具 举报

 楼主| 发表于 2013-10-31 16:13 | 显示全部楼层
爱疯 发表于 2013-10-31 15:28
楼主自己再改吧

谢谢你哈     但这句  A = sh.UsedRange说类型不匹配是什么意思
回复

使用道具 举报

发表于 2013-10-31 16:22 | 显示全部楼层
追梦人亮 发表于 2013-10-31 16:13
谢谢你哈     但这句  A = sh.UsedRange说类型不匹配是什么意思

那把这句改为:
A = sh.Range("a1").CurrentRegion.Value
回复

使用道具 举报

 楼主| 发表于 2013-10-31 16:27 | 显示全部楼层
爱疯 发表于 2013-10-31 16:22
那把这句改为:
A = sh.Range("a1").CurrentRegion.Value

哈哈,谢谢啦,刚才不好意思,是我的表有问题,我的工作表里第一个是命令按钮,没有数据,所以出错了,另外我不要输出就删除即可,能不能再帮忙改改啊,老师最近给我们布置了一个对冲基金作业,要处理大量数据,所以刚入手VBA,真的非常谢谢你
回复

使用道具 举报

 楼主| 发表于 2013-10-31 16:31 | 显示全部楼层
追梦人亮 发表于 2013-10-31 16:27
哈哈,谢谢啦,刚才不好意思,是我的表有问题,我的工作表里第一个是命令按钮,没有数据,所以出错了,另 ...

金币给你了没有,怎么这儿还写着未解决,我都设置成解决了
回复

使用道具 举报

 楼主| 发表于 2013-10-31 16:37 | 显示全部楼层
追梦人亮 发表于 2013-10-31 16:31
金币给你了没有,怎么这儿还写着未解决,我都设置成解决了

也就是从第二个工作表开始删除,不用输出就行,如果输出得对应,这样我接下来可以做回归分析哈,谢谢了!
回复

使用道具 举报

发表于 2013-10-31 16:48 | 显示全部楼层
要指定日期数据4.rar (259.33 KB, 下载次数: 3)
回复

使用道具 举报

 楼主| 发表于 2013-10-31 16:52 | 显示全部楼层
爱疯 发表于 2013-10-31 16:48
从第2个表开始,其它题意不明白

因为我工作薄中第一个表是放一些命令按扭的不是数据,所以执行时,老是出错,但删除了第一个表后又没有问题了,怎样直接从第二个表开始删日期,谢谢哈
回复

使用道具 举报

发表于 2013-10-31 17:04 | 显示全部楼层
追梦人亮 发表于 2013-10-31 16:52
因为我工作薄中第一个表是放一些命令按扭的不是数据,所以执行时,老是出错,但删除了第一个表后又没有问 ...

要指定日期数据5.rar (261.12 KB, 下载次数: 5)
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-4-25 13:55 , Processed in 0.263922 second(s), 12 queries , Gzip On, Yac On.

Powered by Discuz! X3.4

Copyright © 2001-2020, Tencent Cloud.

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