【发布时间】:2017-04-24 07:37:20
【问题描述】:
我正在尝试创建一个宏来查看某一行中单元格的小时值,根据我的 if、then、else 标准对它们进行排序,并基于此生成一个循环我的列的结果。
因此,如果小时为 = 11,则结果为“午餐”。
我对 VBA 很陌生,但这是我目前所掌握的:
Sub Time_Sorter()
Dim i As Long
Dim result As String
For i = 1 To Rows.count
If Hour("J" & i) <= 15 And Hour("J" & i) >= 11 Then
result = "Lunch"
ElseIf Hour("J" & i) <= 16 And Hour("J" & i) >= 17 Then
result = "Pre-Dinner"
ElseIf Hour("J" & i) <= 18 And Hour("J" & i) >= 21 Then
result = "Dinner"
ElseIf Hour("J" & i) <= 22 And Hour("J" & i) >= 23 Then
result = "Late Night"
Else
result = "Other"
End If
Next i
End Sub
我不断收到消息
运行时错误“13”:类型不匹配
而且我不确定如何解决它。
任何见解将不胜感激!
【问题讨论】:
-
“J”列中单元格的格式是什么?是日期和时间吗?你能分享你的数据样本吗?
-
您好,j 列的格式为时间,格式为 24 小时制,因此数据 2012-07-30 12:13:00 PM 在单元格中显示为 12:13 :00
-
所以试试我下面的代码,看看它是否能如你所愿