【发布时间】:2014-03-11 19:07:45
【问题描述】:
我正在尝试使用 VBA 计算一周中的几天和一天中的几个小时(单独绘制)的事件实例。日期/时间戳采用以下格式:“2/28/2014 20:32”
示例:
AppID = 14329
DateCreated = 2/28/14 20:55
日 = 周五
小时 = 20:55
我现在要做的是将数据复制到新列并将日期格式设置为“dddd”,以便显示为“星期日”等。从那里我自动过滤一周中的每一天并计数产生的可见细胞。这正在使用此代码:
With Range("C2:C" & LR)
.AutoFilter
.AutoFilter Field:=3, Criteria1:="Sunday"
cCnt = ActiveSheet.AutoFilter.Range.Columns(3) _
.SpecialCells(xlCellTypeVisible).Cells.Count
For Each cell In Range("C2:C" & cCnt)
Sun = Sun + 1
Next
.AutoFilter Field:=3, Criteria1:="Monday"
cCnt = ActiveSheet.AutoFilter.Range.Columns(3) _
.SpecialCells(xlCellTypeVisible).Cells.Count
For Each cell In Range("C2:C" & cCnt)
Mon = Mon + 1
Next
...等等。
但是,我的问题是按小时计算事件。我试图通过将日期/时间复制到新列并将格式设置为“h:mm;@”并使用以下代码按小时自动过滤来类似地做到这一点:
With Range("D2:D" & LR)
.AutoFilter
.AutoFilter Field:=4, Criteria1:="10:??"
cCnt = ActiveSheet.AutoFilter.Range.Columns(4) _
.SpecialCells(xlCellTypeVisible).Cells.Count
For Each cell In Range("D2:D" & cCnt)
time(10) = time(10) + 1
Next
...等等。
这不起作用,我不知道为什么。我已经尝试将标准 1 更改为各种语法,添加第二个标准参数,但我很困惑为什么当两列都来自相同的原始数据时,这种方法适用于第一次而不是第二次。我也尝试将数据更改为不同的时间格式(只是“hh”等)。
【问题讨论】:
-
只是在黑暗中拍摄,尝试将
10:??更改为10:* -
谢谢波特兰,我和
10*都试过了。不幸的是,结果略有不同,但仍然不正确。
标签: excel visible autofilter vba