Office中国论坛/Access中国论坛

标题: excel表格设定求助 [打印本页]

作者: 天涯沦落20131    时间: 2016-1-4 14:58
标题: excel表格设定求助
本帖最后由 天涯沦落20131 于 2016-1-4 15:00 编辑

各位高手!2007excel如何将启停时间段通过颜色填充显示在12小时的时间间格里!每小格时间5分钟!请查附件!EXCEL表!不甚感积
作者: 天涯沦落20131    时间: 2016-1-4 16:52
再次顶贴!希望得到高手关注!
作者: zhanguoru    时间: 2016-1-4 16:56
没有明白?什么意思?
作者: 天涯沦落20131    时间: 2016-1-4 17:14
zhanguoru 发表于 2016-1-4 16:56
没有明白?什么意思?

通过前面的启停时间录入;
1\得到后面1-12小时单元格颜色自动填充;
2\得到最后3格数值!(时间/有效时间/无效时间)
3\每小格为5分钟
可能是我没有表达清楚!谢谢!

作者: roych    时间: 2016-1-5 10:26
天涯沦落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
复制代码

[attach]57786[/attach]
作者: 天涯沦落20131    时间: 2016-1-5 11:24
roych 发表于 2016-1-5 10:26
大体应该是这样,详细见附件的xlsm文件。

roych:
      非常感谢!厉害!我是想用在时间统计上更直观!需要运行TEST按钮!能否自动识呢!
      
作者: 天涯沦落20131    时间: 2016-1-5 14:52
天涯沦落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

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

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

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

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




欢迎光临 Office中国论坛/Access中国论坛 (http://www.office-cn.net/) Powered by Discuz! X3.3