ExcelHome技术论坛

 找回密码
 免费注册

QQ登录

只需一步,快速开始

快捷登录

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

[求助] 在表格中查询时间点的数据并输出。

[复制链接]

TA的精华主题

TA的得分主题

发表于 2018-9-18 11:35 | 显示全部楼层 |阅读模式
本帖最后由 719404338 于 2018-9-18 13:23 编辑

前几天发一个贴子,表达不清楚。今天修改一下,需求如下:如果现在的时间是9月18日中午11:30分,我要在表格中查询9月18日11点、10点、8点的数据和9朋17日11点、10点、8点的数据,上次是用的ceiling工作表函数向上取整,或者floor工作表函数向下取整,有时能查询到到有时不能查询到。换成split用“:”分割成“2018-9-18 11”,有时能查询,有时不能查询。(特别是上午9:00---10:00段不能查询。)现在换成装入字典能查询,语句复杂了一点。还是很纠结select case不能查询这个问题,谢谢朋友们。
我把附件里的文件修改了,大家帮忙看看,把电脑的时间改成9:00-10:00运行,t3,\t6找不到,确实很诡异。困扰我很多天了。
22222222.jpg

111111.rar

20.04 KB, 下载次数: 7

TA的精华主题

TA的得分主题

发表于 2018-9-18 14:12 | 显示全部楼层
请见代码。
  1. Sub scada()
  2. Dim arr, i%, h%, r, rq, sj, t1, t2, t3, t4, t5, t6
  3. arr = [b2:d65]
  4. h = Hour(Now)
  5. r = Date
  6. For i = 1 To UBound(arr)
  7.     rq = CDate(Split(arr(i, 1))(0)): sj = Hour(arr(i, 1))
  8.     If rq = r Then
  9.          Select Case sj
  10.             Case h
  11.                 t1 = arr(i, 2)
  12.             Case h - 1
  13.                 t2 = arr(i, 2)
  14.             Case 8
  15.                 t3 = arr(i, 2)
  16.           End Select
  17.     ElseIf rq = r - 1 Then
  18.          Select Case sj
  19.             Case h
  20.                 t4 = arr(i, 2)
  21.             Case h - 1
  22.                 t5 = arr(i, 2)
  23.             Case 8
  24.                 t6 = arr(i, 2)
  25.           End Select
  26.     End If
  27. Next
  28. If t1 <> "" Then
  29.     MsgBox "此时进站压力:" & t1 & " 1小时前进站压力:" & t2 & " 今天8点进站压力:" & t3 & Chr(13) & "昨天此时进站压力:" & t4 & " 昨天前1小时前进站压力:" & t5 & " 昨天8点进站压力:" & t6
  30. End If
  31. End Sub

复制代码

评分

2

查看全部评分

TA的精华主题

TA的得分主题

 楼主| 发表于 2018-9-18 21:20 | 显示全部楼层
[广告] VBA代码宝 - VBA编程加强工具 · VBA代码随查随用  · 内置多项VBA编程加强工具       ★ 免费下载 ★      ★使用手册

谢谢版主。

TA的精华主题

TA的得分主题

 楼主| 发表于 2018-9-20 09:31 | 显示全部楼层
本帖最后由 719404338 于 2018-9-20 09:34 编辑

版主,昨天上午9点多试了您的代码正常,今天9点多t3、t6不能查找,求指导。谢谢。
11111111.jpg

111111.rar

21.61 KB, 下载次数: 5

TA的精华主题

TA的得分主题

发表于 2018-9-21 09:20 | 显示全部楼层

TA的精华主题

TA的得分主题

 楼主| 发表于 2018-9-22 07:33 | 显示全部楼层
[广告] VBA代码宝 - VBA编程加强工具 · VBA代码随查随用  · 内置多项VBA编程加强工具       ★ 免费下载 ★      ★使用手册

不能查询,这是不是微软的BUG?

TA的精华主题

TA的得分主题

发表于 2018-9-22 09:20 来自手机 | 显示全部楼层
719404338 发表于 2018-9-22 07:33
不能查询,这是不是微软的BUG?

建议日期一致保存为文本(日期是长整),然后可以正则过滤。感觉有可能 数据类型不一致造成的。
Screenshot_2018-09-22-09-17-32.png

TA的精华主题

TA的得分主题

 楼主| 发表于 2018-9-22 09:55 | 显示全部楼层
[广告] VBA代码宝 - VBA编程加强工具 · VBA代码随查随用  · 内置多项VBA编程加强工具       ★ 免费下载 ★      ★使用手册
zpy2 发表于 2018-9-22 09:20
建议日期一致保存为文本(日期是长整),然后可以正则过滤。感觉有可能 数据类型不一致造成的。

谢谢网友回贴。目前只有9:00-9:59不能查询,其它时间正常。应该不是这个原因,装入字典查询正常,就是用select case 在9点时间段不行。
您需要登录后才可以回帖 登录 | 免费注册

本版积分规则

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

GMT+8, 2025-1-16 00:51 , Processed in 0.025035 second(s), 14 queries , Gzip On, MemCache On.

Powered by Discuz! X3.4

© 1999-2023 Wooffice Inc.

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

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

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