用VBA实现判断A列的数据是否都为时间格式,如果是判断是否为同一天,如果不是同一天分别统计每天的数据个数
时间: 2024-03-17 16:42:22 浏览: 156
可以使用以下 VBA 代码实现:
```
Sub CountByDay()
Dim lastRow As Long, i As Long
Dim dict As Object
Set dict = CreateObject("Scripting.Dictionary")
lastRow = Cells(Rows.Count, "A").End(xlUp).Row
For i = 1 To lastRow
If IsDate(Range("A" & i).Value) Then
Dim day As Date
day = DateValue(Range("A" & i).Value)
If dict.Exists(day) Then
dict(day) = dict(day) + 1
Else
dict.Add day, 1
End If
End If
Next i
For Each key In dict.Keys
Debug.Print "Date: " & Format(key, "yyyy-mm-dd") & ", Count: " & dict(key)
Next key
End Sub
```
这段代码首先创建了一个字典对象 dict,用于存储每个日期对应的数据个数。然后,通过遍历 A 列的数据,判断是否为时间格式,并将其转化为日期格式。如果该日期已经在字典中存在,则将对应的数据个数加 1,否则将该日期添加到字典中,并将对应的数据个数设为 1。最后,遍历字典,输出每个日期对应的数据个数。
阅读全文