ExcelHome技术论坛

 找回密码
 免费注册

QQ登录

只需一步,快速开始

快捷登录

搜索
EH技术汇-专业的职场技能充电站 妙哉!函数段子手趣味讲函数 Excel服务器-会Excel,做管理系统 效率神器,一键搞定繁琐工作
HR薪酬管理数字化实战 Excel 2021函数公式学习大典 Excel数据透视表实战秘技 打造核心竞争力的职场宝典
让更多数据处理,一键完成 数据工作者的案头书 免费直播课集锦 ExcelHome出品 - VBA代码宝免费下载
用ChatGPT与VBA一键搞定Excel WPS表格从入门到精通 Excel VBA经典代码实践指南
查看: 2462|回复: 16

[求助] 求帮忙修改代码,有关时间段汇总问题,谢谢!

[复制链接]

TA的精华主题

TA的得分主题

发表于 2020-8-22 20:27 | 显示全部楼层 |阅读模式
Sub 按日期汇总()
Dim ARR(1 To 9999, 1 To 19), d As Date
Sheets.Add.Name = "汇总"
Sheets("汇总").Range("a3").CurrentRegion.ClearContents
bonddate = InputBox("请输入日期")
Date = bonddate
For i = 2 To Sheets.Count
    With Sheets(i)
        R = .Cells(Rows.Count, 2).End(xlUp).Row
        For j = 1 To R
            If Date = .Cells(j, 2).Value And .Cells(j, 2).Value <> "" Then
                n = n + 1
                For k = 1 To 19
                    ARR(n, k) = .Cells(j, k)
                Next
            End If
Next
    End With
Next
Sheets("汇总").[A3].Resize(9999, 20) = ARR
End Sub
1‘清教一下,红色字段要怎么修改,使得date=inputbox输入的日期,而不是date保持等于系统日期
2。怎么修改使得inputbox输入2020/8/3-2020/8/12这段时间,系统可以自动汇总在其他表中B列日期包括等于这段时间段内的数据到汇总表中

新建 XLSX 工作表.zip

53.15 KB, 下载次数: 24

TA的精华主题

TA的得分主题

 楼主| 发表于 2020-8-22 20:58 | 显示全部楼层
[广告] Excel易用宝 - 提升Excel的操作效率 · Excel / WPS表格插件       ★免费下载 ★       ★ 使用帮助
本帖最后由 sulli112 于 2020-8-22 21:12 编辑

Sub 按日期汇总()
Dim ARR(1 To 9999, 1 To 19), d As Date

Sheets("汇总").Range("a3").CurrentRegion.ClearContents
d = InputBox("请输入日期")
For i = 2 To Sheets.Count
    With Sheets(i)
        R = .Cells(Rows.Count, 2).End(xlUp).Row
        For j = 1 To R
            If d = .Cells(j, 2).Value And .Cells(j, 2).Value <> "" Then
                n = n + 1
                For k = 1 To 19
                    ARR(n, k) = .Cells(j, k)
                Next
            End If
        Next
    End With
Next
Sheets("汇总").[A3].Resize(9999, 20) = ARR
End Sub
一天汇总我可以修改出来,一段时间就不可以了

TA的精华主题

TA的得分主题

 楼主| 发表于 2020-8-22 21:22 | 显示全部楼层
Sub 按日期汇总()
Dim ARR(1 To 9999, 1 To 19), d As Date

Sheets("汇总").Range("a3").CurrentRegion.ClearContents
d = InputBox("请输入日期")

For i = 2 To Sheets.Count
    With Sheets(i)
        R = .Cells(Rows.Count, 2).End(xlUp).Row
        For j = 1 To R
            If d = .Cells(j, 2).Value And .Cells(j, 2).Value <> "" Then
                n = n + 1
                For k = 1 To 19
                    ARR(n, k) = .Cells(j, k)
                Next
            End If
        Next
    End With
Next
Sheets("汇总").[A3].Resize(9999, 20) = ARR
End Sub
这个只可以用某一天的,取值时间段的请问一下要怎么修改呢

TA的精华主题

TA的得分主题

发表于 2020-8-22 22:58 | 显示全部楼层
没有容错代码,假设都是按日期格式填写的.
  1. Sub 按日期汇总()
  2. Dim ARR(1 To 9999, 1 To 19), d As Date

  3. Sheets("汇总").Range("a3").CurrentRegion.ClearContents
  4. d1 = InputBox("请输入开始日期,格式: 2020/8/1")
  5. d2 = InputBox("请输入结束日期,格式: 2020/8/2")
  6. d1 = CDate(d1): d2 = CDate(d2)
  7. For i = 2 To Sheets.Count
  8.     With Sheets(i)
  9.         R = .Cells(Rows.Count, 2).End(xlUp).Row
  10.         For j = 1 To R
  11.             If d1 <= .Cells(j, 2).Value And d2 >= .Cells(j, 2).Value And .Cells(j, 2).Value <> "" Then
  12.                 n = n + 1
  13.                 For k = 1 To 19
  14.                     ARR(n, k) = .Cells(j, k)
  15.                 Next
  16.             End If
  17.         Next
  18.     End With
  19. Next
  20. Sheets("汇总").[A3].Resize(9999, 20) = ARR
  21. End Sub
复制代码

评分

1

查看全部评分

TA的精华主题

TA的得分主题

 楼主| 发表于 2020-8-23 09:43 | 显示全部楼层
长剑八尺 发表于 2020-8-22 22:58
没有容错代码,假设都是按日期格式填写的.

CDATE是将输入值转换为日期的意思吗?

TA的精华主题

TA的得分主题

发表于 2020-8-23 10:04 | 显示全部楼层

TA的精华主题

TA的得分主题

 楼主| 发表于 2020-8-23 10:22 | 显示全部楼层
smiletwo 发表于 2020-8-23 10:04
尽量别使用系统保留标识作变量

你是说尽量不要用CDATE这个代码吗?还是?不是很懂呢?

TA的精华主题

TA的得分主题

发表于 2020-8-23 10:28 | 显示全部楼层

TA的精华主题

TA的得分主题

 楼主| 发表于 2020-8-23 14:46 | 显示全部楼层

是应为会修改系统的日期缘故吗,我发现之前用DATE会自动修改了系统日期

TA的精华主题

TA的得分主题

发表于 2020-8-23 15:25 | 显示全部楼层
[广告] Excel易用宝 - 提升Excel的操作效率 · Excel / WPS表格插件       ★免费下载 ★       ★ 使用帮助
本帖最后由 smiletwo 于 2020-8-23 15:26 编辑

算是编程ABC吧,尽量避免使用系统保留类标示符作自定义变量
您需要登录后才可以回帖 登录 | 免费注册

本版积分规则

手机版|关于我们|联系我们|ExcelHome

GMT+8, 2024-11-17 09:41 , Processed in 0.041649 second(s), 15 queries , Gzip On, MemCache On.

Powered by Discuz! X3.4

© 1999-2023 Wooffice Inc.

沪公网安备 31011702000001号 沪ICP备11019229号-2

本论坛言论纯属发表者个人意见,任何违反国家相关法律的言论,本站将协助国家相关部门追究发言者责任!     本站特聘法律顾问:李志群律师

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