Excel VBA:如果时间在两次之间,请将文本添加到行中,而不是空白
我试图根据条目上的时间戳在一行中的特定单元格中添加一个工作class次标签(Day,Swing,Grave)。 如果没有时间戳,我希望它什么也不做。
时间戳格式为“hh:mm:ss”,位于第6 / F行。
这是我迄今为止。 没有第四行,它将标记所有条目为天,否则没有骰子。
Sub Shift() Dim Time As Date, cel As Range For Each cel In Range("F2:F100000") If IsEmpty(cell.Value) Then Exit For If Time > TimeValue("06:00:00") And Time < TimeValue("14:00:00") Then cel.Offset(0, 2).Value = "Day" End If Next End Sub
第四行给你带来意想不到的原因是因为你有Cell.Value
,而不是cel.value
:
If IsEmpty(cel.Value) Then Exit For
这将解决你的逻辑testing。 此外,你需要指定Time
东西,否则它只会使用00:00:00
。
编辑:我强烈build议您将Option Explicit
添加到您的子顶部(或通过Excel选项)。 这将迫使你声明一个variables,如果你正在使用一个。 这就是我在.1秒中发现这个错误的原因 – 我复制了你的macros,试图运行它,并且马上就突出显示了这条线。