设为首页收藏本站Access中国

Office中国论坛/Access中国论坛

 找回密码
 注册

QQ登录

只需一步,快速开始

返回列表 发新帖
查看: 2085|回复: 8
打印 上一主题 下一主题

excel表格设定求助

[复制链接]
跳转到指定楼层
1#
发表于 2016-1-4 14:58:57 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
本帖最后由 天涯沦落20131 于 2016-1-4 15:00 编辑

各位高手!2007excel如何将启停时间段通过颜色填充显示在12小时的时间间格里!每小格时间5分钟!请查附件!EXCEL表!不甚感积

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?注册

x
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享分享 分享淘帖 订阅订阅
2#
 楼主| 发表于 2016-1-4 16:52:05 | 只看该作者
再次顶贴!希望得到高手关注!
3#
发表于 2016-1-4 16:56:14 | 只看该作者
没有明白?什么意思?
4#
 楼主| 发表于 2016-1-4 17:14:03 | 只看该作者
zhanguoru 发表于 2016-1-4 16:56
没有明白?什么意思?

通过前面的启停时间录入;
1\得到后面1-12小时单元格颜色自动填充;
2\得到最后3格数值!(时间/有效时间/无效时间)
3\每小格为5分钟
可能是我没有表达清楚!谢谢!
5#
发表于 2016-1-5 10:26:27 | 只看该作者
天涯沦落20131 发表于 2016-1-4 17:14
通过前面的启停时间录入;
1\得到后面1-12小时单元格颜色自动填充;
2\得到最后3格数值!(时间/有效时间/ ...

大体应该是这样,详细见附件的xlsm文件。
  1. Sub test()
  2.     Dim i As Long, j As Long
  3.     Dim x As Long
  4.     '开始和结束位置,用于定位列数,以便填充。
  5.     Dim lngStartRange As Long
  6.     Dim lngEndRange As Long
  7.     '常量。初始值
  8.     Const SDate As Date = #1:00:00 AM#
  9.     '行终止值
  10.     x = Sheet1.Range("B3").End(xlDown).Row
  11.     For i = 3 To x
  12.         lngStartRange = DateDiff("n", SDate, Sheet1.Range("B" & i)) / 5
  13.         lngEndRange = DateDiff("n", SDate, Sheet1.Range("C" & i)) / 5 - 1
  14.         For j = lngStartRange To lngEndRange
  15.             Sheet1.Range("D" & i).Offset(0, j).Interior.Color = RGB(255, 0, 0)
  16.         Next j
  17.     Next i
  18. End Sub
复制代码

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?注册

x
6#
 楼主| 发表于 2016-1-5 11:24:29 | 只看该作者
roych 发表于 2016-1-5 10:26
大体应该是这样,详细见附件的xlsm文件。

roych:
      非常感谢!厉害!我是想用在时间统计上更直观!需要运行TEST按钮!能否自动识呢!
      
7#
 楼主| 发表于 2016-1-5 14:52:37 | 只看该作者
天涯沦落20131 发表于 2016-1-5 11:24
roych:
      非常感谢!厉害!我是想用在时间统计上更直观!需要运行TEST按钮!能否自动识呢!

roych版主:
      1\ 我将你的模块套入以下代码,打开时可以自动运行!
      2\ 但我将"开启时间"与"停止时间"去除后运行很慢,小方格的红色填充不能消失!望指点!谢谢!
Private Sub Workbook_Open()
myprocedure
End Sub
Sub myprocedure()

Dim i As Long, j As Long
    Dim x As Long
    '开始和结束位置,用于定位列数,以便填充。
    Dim lngStartRange As Long
    Dim lngEndRange As Long
    '常量。初始值
    Const SDate As Date = #1:00:00 AM#
    '行终止值
    x = Sheet1.Range("B3").End(xlDown).Row
    For i = 3 To x
        lngStartRange = DateDiff("n", SDate, Sheet1.Range("B" & i)) / 5
        lngEndRange = DateDiff("n", SDate, Sheet1.Range("C" & i)) / 5 - 1
        For j = lngStartRange To lngEndRange
            Sheet1.Range("D" & i).Offset(0, j).Interior.Color = RGB(255, 0, 0)
        Next j
    Next i
End Sub

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?注册

x
8#
发表于 2016-1-5 14:53:18 | 只看该作者
天涯沦落20131 发表于 2016-1-5 11:24
roych:
      非常感谢!厉害!我是想用在时间统计上更直观!需要运行TEST按钮!能否自动识呢!

你可以通过datediff,如代码中:
DateDiff("n", SDate, Sheet1.Range("B" & i)
那一段,来计算分钟数。但是必须先要了解你的有效时间,无效时间等等是怎么计算的。
9#
 楼主| 发表于 2016-1-5 14:55:04 | 只看该作者
roych 发表于 2016-1-5 14:53
你可以通过datediff,如代码中:
DateDiff("n", SDate, Sheet1.Range("B" & i)
那一段,来计算分钟数。 ...

=TEXT(MOD($C3-$B3,1),"["&MID("mhs",COLUMN(A1),1)&"]")
我用以上公式可以得到分钟数
10#
 楼主| 发表于 2016-1-11 15:26:03 | 只看该作者
roych 发表于 2016-1-5 14:53
你可以通过datediff,如代码中:
DateDiff("n", SDate, Sheet1.Range("B" & i)
那一段,来计算分钟数。 ...

roych版主:谢谢帮助!我通过函数及有效规则,重新建立一张表格!通过AV/NAV/WA更换得到不同单元格颜色来表示时间段!共精益管理需要的朋友!顺便附上成果!算是小小贡献吧!能力有限!

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?注册

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

本版积分规则

QQ|站长邮箱|小黑屋|手机版|Office中国/Access中国 ( 粤ICP备10043721号-1 )  

GMT+8, 2024-4-27 16:57 , Processed in 0.105720 second(s), 34 queries .

Powered by Discuz! X3.3

© 2001-2017 Comsenz Inc.

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